KR101155433B1 - 멀티 코어 프로세서에 최적화된 문자열 검색 장치 및 그것의 문자열 검색 방법 - Google Patents

멀티 코어 프로세서에 최적화된 문자열 검색 장치 및 그것의 문자열 검색 방법 Download PDF

Info

Publication number
KR101155433B1
KR101155433B1 KR1020090063565A KR20090063565A KR101155433B1 KR 101155433 B1 KR101155433 B1 KR 101155433B1 KR 1020090063565 A KR1020090063565 A KR 1020090063565A KR 20090063565 A KR20090063565 A KR 20090063565A KR 101155433 B1 KR101155433 B1 KR 101155433B1
Authority
KR
South Korea
Prior art keywords
patterns
pattern
string matching
cores
matching operation
Prior art date
Application number
KR1020090063565A
Other languages
English (en)
Other versions
KR20110006095A (ko
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 KR1020090063565A priority Critical patent/KR101155433B1/ko
Publication of KR20110006095A publication Critical patent/KR20110006095A/ko
Application granted granted Critical
Publication of KR101155433B1 publication Critical patent/KR101155433B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 실시 예에 따른 멀티 코어 프로세서를 이용한 문자열 검색 방법은 사전 편찬 순서에 의하여, 패턴들이 코어들에 할당되는 단계, 및 상기 코어들은 상기 사전 편찬 순서에 의하여 상기 코어들에 할당된 적어도 하나 이상의 패턴들을 이용하여 각각 문자열 매칭 동작을 수행하는 단계를 포함한다.

Description

멀티 코어 프로세서에 최적화된 문자열 검색 장치 및 그것의 문자열 검색 방법{STRING MATCHING DEVICE OPTIMIZING MULTI CORE PROCESSOR AND STRING MATCHING METHOD THEREOF}
본 발명은 문자열 검색 장치 및 그것의 문자열 검색 방법에 관한 것으로, 더욱 상세하게는 멀티 코어 프로세서에 최적화된 문자열 검색 장치 및 방법에 관한 것이다.
문자열 매칭 알고리즘(string matching algorithm)은 많은 정보를 포함하는 데이터 베이스 상에서 특정 패턴을 검색하는 효율적인 알고리즘으로 인식되고 있다. 예를 들어, 문자열 매치 알고리즘은 인간 게놈 검색, 다양한 바이러스들, 컴퓨터 네트워크의 방화 시스템 또는 대규모의 텍스트 파일 상에서 특정 패턴을 검색하는 효율적인 방법을 제공한다.
문자열 매칭 알고리즘의 하나로 Wu-manber 알고리즘이 있다. Wu-manber 알고리즘은 전처리 과정에서 시프트 테이블(Shift table), 해시 테이블(Hash table) 및 프리픽스 테이블(Prefix table)을 생성한다. Wu-manber 알고리즘은 전처리 과정에서 얻은 시프트 테이블 등을 이용하여 텍스트에 특정 패턴이 존재하는지 여부를 검 색한다.
한편, 싱글 코어 프로세서(single-core processor)의 성능 향상의 한계 때문에, 멀티 코어 프로세서(multi-core processor)의 중요성이 부각되고 있다. 특히, 컴퓨터 사이언스 또는 컴퓨터 엔지니어링의 분야에 있어서, 멀티 코어 프로세서의 중요성은 점점 부각되고 있다. 이에, 멀티 코어 프로세서를 이용한 문자열 검색 방법이 요구되고 있다.
본 발명의 목적은 멀티 코어 프로세서에서 최적화되어 구동될 수 있는 문자열 검색 장치 및 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 멀티 코어 프로세서를 이용한 문자열 검색 방법은 사전 편찬 순서에 의하여, 패턴들이 코어들에 할당되는 단계, 및 상기 코어들은 상기 사전 편찬 순서에 의하여 상기 코어들에 할당된 적어도 하나 이상의 패턴들을 이용하여 각각 문자열 매칭 동작을 수행하는 단계를 포함한다.
실시 예로서, 상기 문자열 매칭 동작을 수행하는 단계는 Wu-manber 알고리즘에 의하여 문자열 매칭 동작이 수행된다.
실시 예로서, 상기 문자열 매칭 동작을 수행하는 단계는 상기 코어들은 상기 코어들에 할당된 적어도 하나 이상의 패턴들을 이용하여 각각의 전처리 과정을 수행단계, 및 상기 코어들은 상기 각각의 전처리 과정에서 얻어진 테이블을 이용하여 각각의 문자열 매칭 동작을 수행하는 단계를 포함한다.
실시 예로서,
상기 각각의 전처리 과정에서 얻어진 테이블은 프리픽스 테이블을 포함하고, 상기 프리픽스 테이블은 상기 프리픽스 테이블이 대응하는 코어에 따라 각각 다른 프리픽스 인덱스를 갖는다.
실시 예로서, 상기 사전 편찬 순서는 상기 패턴들이 알파벳 문자인 경우에 상기 패턴들의 첫 두 개 문자의 알파벳 순서이다.
실시 예로서, 상기 코어들은 각각 독립적으로 문자열 매칭 동작을 수행한다.
본 발명의 실시 예에 따른 멀티 코어 프로세서를 이용한 문자열 검색 방법은 패턴 길이에 의하여, 패턴들이 코어들에 할당되는 단계, 및 상기 코어들은 상기 패턴 길이에 의하여 상기 코어들에 할당된 적어도 하나 이상의 패턴들을 이용하여 각각 문자열 매칭 동작을 수행하는 단계를 포함한다.
실시 예로서, 상기 문자열 매칭 동작을 수행하는 단계는 Wu-manber 알고리즘에 의하여 문자열 매칭 동작이 수행된다.
실시 예로서, 상기 문자열 매칭 동작을 수행하는 단계는
상기 코어들은 상기 코어들에 할당된 적어도 하나 이상의 패턴들을 이용하여 각각의 전처리 과정을 수행단계, 및 상기 코어들은 상기 각각의 전처리 과정에서 얻어진 테이블을 이용하여 각각의 문자열 매칭 동작을 수행하는 단계를 포함한다.
실시 예로서, 상기 각각의 전처리 과정에서 얻어진 테이블은 시프트 테이블을 포함하고, 상기 시프트 테이블은 상기 시프트 테이블이 대응하는 코어에 따라 각각 다른 최대 시프트 값을 갖는다.
실시 예로서, 상기 최대 시프트 값은 상기 시프트 테이블이 대응하는 코어에 할당된 적어도 하나 이상의 패턴들 중 가장 짧은 패턴의 길이에서 1 을 차감한 것으로 정의된다.
실시 예로서, 상기 코어들은 각각 독립적으로 문자열 매칭 동작을 수행한다.
본 발명의 실시 예에 따른 문자열 검색 장치는 복수의 패턴들이 저장되는 제 1 및 제 2 패턴 저장부, 상기 제 1 및 제 2 패턴 저장부에 대응되며, 상기 제 1 및 제 2 패턴 저장부에 저장된 패턴들에 대한 문자열 매칭 동작을 수행하는 제 1 및 제 2 패턴 검색부를 포함하되, 상기 복수의 패턴들은 사전 편찬 순서에 의해서 상기 제 1 및 제 2 패턴 저장부에 할당된 것을 특징으로 한다.
실시 예로서, 상기 문자열 검색 장치는 상기 복수의 패턴들에 대한 문자열 매칭 동작을 수행하기 위한 타겟 텍스트를 저장하는 타겟 텍스트 저장부를 더 포함하되, 상기 제 1 및 제 2 패턴 검색부는 상기 타겟 텍스트 저장부에 각각 독립적으로 엑세스한다.
실시 예로서, 상기 사전 편찬 순서는 상기 패턴들이 알파벳 문자인 경우에 상기 패턴들의 첫 두 개 문자의 알파벳 순서이다.
실시 예로서, 상기 제 1 및 제 2 패턴 저장부에 저장된 패턴들에 대한 문자열 매칭 동작은 Wu-manber 알고리즘에 의하여 수행된다.
실시 예로서, 상기 문자열 검색 장치는 상기 Wu-manber 알고리즘에 의하여 프리픽스 테이블을 구성하는 전처리 과정을 수행하되, 상기 제 1 및 제 2 패턴 검색부에 대응하는 프리픽스 테이블은 각각 다른 프리픽스 인덱스를 갖는다.
실시 예로서, 상기 프리픽스 인덱스는 상기 패턴들의 첫 두 개 문자의 알파벳 문자를 포함한다.
실시 예로서, 상기 제 1 및 제 2 패턴 검색부는 각각 독립적으로 문자열 매칭 동작을 수행한다.
실시 예로서, 상기 제 1 및 제 2 패턴 저장부에 할당된 복수의 패턴들은 상 기 사전 편찬 순서 대신에 패턴 길이에 의하여 할당된다.
실시 예로서, 상기 제 1 및 제 2 패턴 저장부에 저장된 패턴들에 대한 문자열 매칭 동작은 Wu-manber 알고리즘에 의하여 수행된다.
실시 예로서, 상기 문자열 검색 장치는 상기 Wu-manber 알고리즘에 의하여 시프트 테이블을 구성하는 전처리 과정을 수행하되, 상기 제 1 및 제 2 패턴 저장부에 대응하는 시프트 테이블은 각각 다른 최대 시프트 값을 갖는다.
실시 예로서, 상기 제 1 패턴 저장부에 대응하는 최대 시프트 값은 상기 제 1 패턴 저장부에 할당된 패턴들 중 가장 짧은 패턴의 길이에서 1 을 차감한 것으로 정의되고, 상기 제 2 패턴 저장부에 대응하는 최대 시프트 값은 상기 제 2 패턴 저장부에 할당된 패턴들 중 가장 짧은 패턴의 길이에서 1 을 차감한 것으로 정의된다.
본 발명에 따른 문자열 검색 장치 및 방법은 사전 편찬 순서 또는 패턴 길이에 의하여 패턴들을 분할하여 각 코어에 할당한다. 따라서, 동일 패턴에 대한 문자열 매칭 동작이 중복되어 수행되는 것이 방지될 수 있다. 또한, 각 코어는 독립적으로 문자열 매칭 동작을 수행하기 때문에, 문자열 매칭 동작 수행 시간이 감소한다.
이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발 명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 멀티 코어 프로세서를 이용한 문자열 검색 장치를 보여주는 블록도이다.
도 1을 참조하면, 문자열 검색 장치(100)는 패턴 저장부(110), 멀티 코어 프로세서(120), 및 공유 주소 공간(130)을 포함한다.
패턴 저장부(110)는 복수의 패턴 저장 공간(Structure)들을 포함한다. 패턴 저장 공간(Structure)들은 각각 대응하는 패턴(Pattern)을 포함할 것이다. 예를 들어, 도 1을 참조하면, 제 1 내지 제 n 패턴 저장 공간들(Structure 1 ~ Structure n)은 각각 제 1 내지 제 n 패턴(P1 ~ Pn)을 저장할 것이다. 다만 이는 예시적인 것으로 이해되어야 할 것이다. 즉, 각각의 패턴 저장 공간들은 복수의 패턴들을 저장할 수 있을 것이다. 예를 들어, 제 1 패턴 내지 제 n 패턴 저장 공간들(Structure 1 ~ Structure n)은 각각 복수의 패턴들을 저장할 수 있다.
한편, 패턴 저장 공간(Structure)은 다양하게 구현될 수 있을 것이다. 예를 들어, 패턴 저장 공간은 캐쉬 메모리(cahche memory)로 구현될 수 있을 것이다. 캐쉬 메모리(cache memory)는 플래시 메모리(Flash memory), 상 변화 메모리(PRAM), 저항 메모리(RRAM), 자기 랜덤 액세스 메모리(MRAM), 강 유전체 메모리(FRAM) 또는 다이내믹 랜덤 액세스 메모리(DRAM) 등으로 구현될 수 있을 것이다.
멀티 코어 프로세서(120)는 복수의 코어(core 1 - core n)들을 포함할 것이다. 각 코어들(core)은 대응하는 패턴 저장 공간(Structure)에 저장된 패턴에 대한 문자열 매칭 동작(string matching operation)을 수행할 것이다. 예를 들어, 도 1 을 참조하면, 제 1 내지 제 n 코어(Core 1 ~ Core n)는 각각 제 1 내지 제 n 패턴 저장 공간(Structure 1 ~ Structure n)에 대응하고, 코어들(Core)은 각각 대응하는 패턴 저장 공간(Structure)에 저장된 패턴에 대한 문자열 매칭 동작을 수행할 것이다.
공유 주소 공간(130)은 타겟 텍스트(target text)를 저장할 것이다. 여기서 타겟 텍스트(target text)는 문자열 매칭 동작을 수행하고자 하는 대상이 되는 텍스트 등을 의미할 것이다. 예를 들어, 타겟 텍스트(target text)는 많은 양의 정보를 포함하는 데이터 베이스를 포함할 것이다. 다만, 이는 예시적인 것으로 본 발명에 따른 기술적 사상은 텍스트에 한정되지 않음이 이해될 것이다. 예를 들어, 타겟 텍스트는 인간 게놈의 유전자 시퀀스, 침입탐지시스템(Intrusion Detection System)의 관찰 대상이 되는 트래픽 등 문자열 매칭 동작의 대상이 되는 모든 것들을 포함할 것이다.
한편, 공유 주소 공간(130)은 다양하게 구현될 수 있을 것이다. 예를 들어, 공유 주소 공간(130)은 캐쉬 메모리(cahche memory)로 구현될 수 있을 것이다. 캐쉬 메모리(cache memory)는 플래시 메모리(Flash memory), 상 변화 메모리(PRAM), 저항 메모리(RRAM), 자기 랜덤 액세스 메모리(MRAM), 강 유전체 메모리(FRAM) 또는 다이내믹 랜덤 액세스 메모리(DRAM) 등으로 구현될 수 있을 것이다.
본 발명에 따른 문자열 검색 장치(100)는 멀티 코어 프로세서를 이용함으로써, 효율적인 문자열 매칭 동작을 수행할 수 있다. 구체적으로, 멀티 코어 프로세서(120)에 포함된 코어(core)들은 각각 독립적으로 문자열 매칭 동작을 수행할 수 있다. 또한, 각 코어(core)들은 동시에 문자열 매칭 동작을 수행할 수 있다. 따라서, 단일 코어에 의하여 문자열 매칭 동작이 수행되는 경우에 비하여, 타겟 텍스트에 대한 문자열 매칭 동작이 빠르게 수행될 수 있다.
자세히 설명하면, 공유 주소 공간(130)에 타겟 텍스트(target)가 할당될 것이다. 또한, 패턴 저장 공간들(Structure)에는 각각 패턴들이 할당될 것이다. 문자열 매칭 동작이 수행되는 경우, 코어들(Core)은 공유 주소 공간(130)에 저장된 타겟 텍스트를 읽을 것이다. 이 경우에 각 코어들(Core)들은 독립적으로 공유 주소 공간에 엑세스하고, 독립적으로 대응하는 패턴에 대한 문자열 매칭 동작을 수행할 것이다.
즉, 단일 코어 프로세서(single core processor)를 사용하는 경우, 문자열 매칭 동작은 하나의 코어에 의하여 수행된다. 이 경우에 문자열 매칭 동작이 하나의 코어에 의하여 수행되기 때문에, 문자열 검색 장치는 높은 성능의 코어를 필요로 한다. 그러나 코어 성능의 향상의 한계로 인하여, 단일 코어 프로세서를 사용한 문자열 매칭 동작은 속도의 한계가 있다.
반면, 본 발명에 따른 멀티 코어 프로세서 구조를 사용하는 문자열 검색 장치(100)는 복수의 코어에서 각각 문자열 매칭 동작을 수행한다. 또한, 코어들은 각각 독립적으로 문자열 매칭 동작을 수행할 수 있다. 따라서 단일 코어 프로세서 구조를 사용하는 문자열 검색 장치에 비하여 보다 빠른 검색이 가능하다.
한편, 본 발명의 실시 예에 있어서, 패턴들은 멀티 코어 프로세서 구조에 최적화된 방식에 의하여 정렬되어 각 패턴 저장 공간에 할당될 것이다. 따라서 본 발 명의 실시 예에 따른 문자열 검색 장치(100)는 패턴들이 정렬되지 않은 경우에 비하여 문자열 매칭 동작의 수행 시간이 감소할 것이다.
예를 들어, 본 발명에 따른 실시 예에 있어서, 패턴들은 패턴의 사전 편찬 순서에 의하여 정렬될 수 있을 것이다. 정렬된 패턴들은 하나 또는 복수의 패턴으로 분할되어 각각의 패턴 저장 공간(Structure)에 할당될 것이다. 이는 이하의 도 2 및 도 4에서 좀더 상세하게 설명될 것이다.
다른 예로, 패턴들은 패턴의 길이에 의하여 정렬될 수 있을 것이다. 정렬된 패턴들은 하나 또는 복수의 패턴으로 분할되어 각각의 패턴 저장 공간(Structure)에 할당될 것이다. 이는 이하의 도 4 및 도 7에서 좀더 상세하게 설명될 것이다.
한편, 상술한 문자열 검색 장치(100)의 구조는 예시적인 것으로 이해되어야 할 것이다. 예를 들어, 멀티 코어 프로세서(120)는 복수의 코어들(Core), 패턴 저장 공간(110) 및 공유 주소 공간(130)을 포함할 수 있을 것이다. 다른 예로, 문자열 검색 장치(100)는 문자열 매칭 동작이 수행될 때 데이터가 타겟 텍스트가 로드(load)되는 저장 공간(미도시)을 더 포함할 수 있을 것이다.
도 2는 사전 편찬 순서에 따른 패턴의 할당을 보여주기 위한 블록도이다. 구체적으로, 도 2는 본 발명의 실시 예에 따른 사전 편찬 순서에 따른 패턴의 할당을 보여주는 블록도이고, 도 3은 사전 편찬 순서에 의하지 않은 패턴의 할당을 보여주는 블록도이다.
간략한 설명을 위하여, 패턴들은 알파벳 문자이고, 패턴의 사전 편찬 순서는 알파벳 문자의 사전 편찬 순서인 것으로 가정된다. 다만, 이는 예시적인 것으로 이 해되어야 할 것이다. 예를 들어, 패턴들이 한글 문자인 경우, 패턴의 사전 편찬 순서는 한글 문자의 사전 편찬 순서에 의할 것이다. 한편, 문자열 매칭 동작은 Wu-manber 알고리즘에 의하여 수행된다고 가정된다.
두 개의 패턴 저장 공간이 존재한다고 가정되고, 여섯 개의 패턴들이 존재하는 것으로 가정된다. 제 1 패턴(P1)은 'aabcdd'의 패턴을 갖는 것으로 가정된다. 제 2 패턴(P2)은 'aabbdd'의 패턴을 갖는 것으로 가정된다. 마찬가지로, 제 3 내지 제 6 패턴(P3-P6)은 각각 'aaccdd','abeedd', 'abffdd','acggdd'의 패턴을 갖는 것으로 가정된다.
도 2를 참조하면, 본 발명에 따른 실시 예에 있어서, 각 패턴 저장 공간은 알파벳 순서에 의하여 할당된 패턴들을 저장할 것이다. 예시적으로, 패턴 저장 공간들은 각각 세 개의 패턴들을 저장할 것이다.
패턴들이 알파벳 순서에 의하여 할당됨으로써, 동일한 패턴에 대한 문자열 매칭 동작이 각 코어에서 중복되어 수행되는 것을 방지할 수 있다. 더욱이, Wu-manber 알고리즘에 의하여 문자열 매칭 동작이 수행되는 경우에 프리픽스 테이블의 사이즈가 작아지는 효과가 있다.
자세히 설명하면, Wu-manber 알고리즘은 시프트 테이블(Shift table), 해시 테이블(Hash table) 및 프리픽스 테이블(Prefix table)을 생성하는 전처리 과정을 수행한다. 여기서, 시프트 테이블은 텍스트 탐색 과정에서 얼마나 많은 문자열을 해시 테이블을 이용한 일치 여부의 확인 없이 건너뛸 수 있는지를 정의하기 위하여 사용된다. 프리픽스 테이블은 각 패턴의 첫 두 개의 문자만을 미리 비교하여 해당 패턴에 대한 전체 매칭 프로세스를 수행할지 스킵할지를 결정하는데 사용된다.
알파벳 순서에 의하여 패턴들을 정렬하게 되면, 서로 이웃하는 패턴들은 같은 프리픽스를 가지게 된다. 따라서 알파벳 순서에 의하여 정렬된 패턴들을 그룹화할 경우, 같은 프리픽스를 가지는 패턴들은 한 그룹에 모이게 될 확률이 매우 높아지게 된다. 반면에 알파벳 순서에 의하여 정렬이 되지 않은 패턴들을 그룹화할 경우, 같은 프리픽스를 갖는 패턴들이 서로 다른 그룹에 포함될 확률이 높아질 것이다.
예를 들어, 계속해서 도 2를 참조하면, 제 1 내지 제 6 패턴들은 알파벳 순서에 의하여 정렬된 경우이다. 다시 말하면, 제 1 내지 제 6 패턴들은 패턴의 첫 두 개의 문자들의 알파벳 순서에 의하여 정렬되어 있다. 이 경우, 제 1 코어(Core 1)의 프리픽스 테이블은 'aa'의 하나의 프리픽스 인덱스만을 포함하게 된다.
반면, 도 3을 참조하면, 제 1 내지 제 6 패턴들을 알파벳 순서에 의하여 정렬되지 않은 경우이다. 예시적으로, 제 2, 제 5 및 제 6 패턴들이 제 1 패턴 저장 공간에 저장되어 있다. 이 경우, 제 1 코어(Core 1)의 프리픽스 테이블은 'aa','ab','ac'의 세 개의 프리픽스 인덱스를 가질 것이다. 따라서, 패턴들이 알파벳 순서에 의하여 정렬된 경우보다, 큰 사이즈의 프리픽스 테이블이 필요할 것이다.
또한, 알파벳 순서에 의하여 패턴들이 정렬된 경우, 프리픽스 인덱스에 대한 매칭 프로세스가 각 코어에서 중복 수행되는 것이 방지될 수 있다.
예를 들어, 도 2를 참조하면, 'aa'의 프리픽스 인덱스를 가지는 패턴들은 모 두 제 1 코어(Core 1)의 프리픽스에 링크되어 있다. 따라서 'aa'에 대한 매칭 프로세스는 제 1 코어(Core)에서 수행될 것이다. 이는 'aa'에 대한 매칭 프로세스가 각 코어에서 중복 수행됨이 방지됨을 의미한다.
반면, 도 3을 참조하면, 패턴들이 알파벳 순서에 의하여 정렬된 경우 제 2, 제 5 및 제 6 패턴들이 제 1 패턴 저장 공간(210)에 저장될 수 있다. 제 1, 제 3 및 제 4 패턴들이 제 2 패턴 저장 공간(230)에 저장될 수 있다. 이 경우, 'aa'의 프리픽스 인덱스를 가지는 패턴들은 제 1 코어(Core 1) 및 제 2 코어(Core 2)의 프리픽스에 링크될 것이다. 이는 'aa'에 대한 매칭 프로세스가 제 1 코어(Core 1) 및 제 2 코어(Core 2)에 의하여 중복 수행됨을 의미한다.
상술한 바와 같이, 패턴들에 대하여 알파벳 정렬을 수행하게 되면, 프리픽스 테이블의 사이즈가 작아지는 효과가 있다. 또한, 프리픽스 매칭 프로세스의 중복 수행을 방지할 수 있다. 이는 알파벳 정렬에 의하여, 프리픽스 테이블이 멀티코어에 최적화될 수 있음을 의미한다. 따라서, 본 발명의 실시 예에 따른 문자열 검색 장치는 알파벳 순서에 의하여 패턴들을 분할함으로써, 멀티 코어에 최적화된 문자열 매칭 동작을 수행할 수 있다.
한편, 본 발명의 실시 예에 따른 Wu-manber 알고리즘에 의한 문자열 매칭 동작은 예시적인 것으로 이해되어야 할 것이다. 예를 들어, 문자열 매칭 동작은 Aho-Corasick 스트링 매칭 알고리즘에 의하여 수행될 수 있음이 이해될 것이다.
도 4는 사전 편찬 순서에 의하여 패턴이 분할된 경우의 멀티 코어 프로세서에서의 문자열 매칭 동작을 보여주는 순서도이다.
S100 단계에서, 패턴들이 사전 편찬 순서에 의하여 정렬될 것이다. 사전 편찬 순서에 의하여 패턴들이 정렬되면, 서로 이웃하는 패턴들은 같을 프리픽스를 가지게 될것이다.
S120 단계에서, 사전 편찬 순서에 의하여 정렬된 패턴들인 각각의 코어에 할당될 것이다. 도 1 및 도 2를 참조하면, 사전 편찬 순서에 의하여 정렬된 패턴들은 패턴 저장 공간(Structure)에 각각 할당되어 저장될 것이다. 예를 들어, 서로 같은 프리픽스를 가지는 패턴들은 동일한 패턴 저장 공간에 저장될 수 있을 것이다.
S140 단계에서, 할당된 패턴들을 사용하여 전처리 과정(Preprocessing)이 수행될 것이다. 여기서 전처리 과정이란 Wu-manber 알고리즘에서의 시프트 테이블(Shift tabel), 해시 테이블(Hash table) 및 프리픽스 테이블(Prefix table)이 구성되는 과정을 의미한다. 도 1 및 도 2를 참조하면, 본 발명의 실시 예에 따른 문자열 검색 장치(100)는 멀티 코어 프로세서에 최적화된 프리픽스 테이블을 구성할 것이다.
예를 들어, 사전 편찬 순서에 의하여 패턴들이 할당된 경우, 프리픽스 테이블은 알파벳 순서에 의하여 패턴들이 분할되지 않은 경우에 비하여 작은 테이블 사이즈를 가질 것이다. 또한, 프리픽스 매칭 프로세스의 중복 수행이 방지될 것이다. 이는 도 2에서 상세히 설명하였는바, 자세한 설명은 생략된다.
S160 단계에서, 멀티 코어 프로세서에서의 패턴과 타겟 텍스트의 일치 여부에 대한 검색이 수행될 것이다. 도 1 및 도 2를 참조하면, 타겟 텍스트는 공통의 공유 주소 공간에 저장될 것이다. 또한, 패턴들은 각각 패턴 저장 공간에 저장되어 있으며, 패턴 저장 공간들은 각각 코어에 대응할 것이다. 코어들은 대응하는 패턴 저장 공간에 저장된 패턴들과 타겟 텍스트의 일치 여부에 대한 검색을 각각 독립적으로 수행할 것이다.
이 경우, 사전 편찬 순서에 의하여 정렬된 패턴들을 이용하여 프리픽스 테이블이 구성되었으므로, 각 코어의 프리픽스 매칭 프로세스는 중복 수행되지 않을 것이다. 따라서, 본 발명의 실시 예에 따른 문자열 검색 장치는 멀티 코어 프로세서에 최적화된 문자열 검색 동작을 수행할 수 있다.
도 5는 본 발명의 다른 실시 예에 따른 패턴 길이에 따른 패턴의 분할을 보여주는 블록도이다. 도 6은 패턴 길이에 의하지 않은 패턴의 분할을 보여주는 블록도이다.
도 5 및 도 6을 참조하면, 패턴들은 패턴 저장 공간(structure 1, structure 2)에 각각 분할되어 저장된다. 간략한 설명을 위하여, 두 개의 패턴 저장 공간(structure 1, structure 2)이 존재하는 것으로 가정되고, 여덟 개의 패턴들이 존재하는 것으로 가정된다. 문자열 매칭 동작은 Wu-manber 알고리즘에 의하여 수행되는 것으로 가정된다. 제 1 패턴(P1)은 'BAG'의 패턴을 갖는 것으로 가정된다. 제 2 패턴(P2)은 'GYM'의 패턴을 갖는 것으로 가정된다. 마찬가지로, 제 3 내지 제 8 패턴(P3-P8)은 각각 'STUDY', 'POWER', 'PROCESS', 'MAXIMUM', 'EXPERIMENT, 'SUCCESSFUL'의 패턴을 갖는 것으로 가정된다.
본 발명에 따른 다른 실시 예에 있어서, 패턴 저장 공간들(Structure)은 패턴 길이에 의하여 분할된 패턴들을 각각 저장할 것이다. 예시적으로, 패턴 저장 공 간들은 각각 네 개의 패턴들을 저장할 것이다.
패턴들이 패턴 길이에 의하여 분할됨으로써, 문자열 매칭 동작은 패턴들이 패턴 길이에 의하여 분할되지 않은 경우보다 빠르게 수행될 수 있다.
자세히 설명하면, Wu-manber 알고리즘은 전처리 과정(Preprocessing)에서 시프트 테이블(Shift table)을 생성한다. 여기서, 시프트 테이블은 주어진 패턴들의 길이를 바탕으로 최대 시프트 값(maximum shift number)을 계산하여 텍스트에서 얼마나 많은 캐릭터를 스킵할 지를 결정하는데 사용된다.
예를 들어, 최대 시프트 값은 가장 짧은 패턴의 길이에서 1을 차감한 값으로 정의될 수 있을 것이다. 이를 수학식으로 표현하면 다음과 같다.
Maximun shift number = 한 그룹 내에서 가장 짧은 패턴의 길이 - 1
도 1 및 도 5를 참조하면, 본 발명의 실시 예에 따른 패턴들은 패턴 길이에 의하여 정렬될 것이다. 패턴 길이에 의하여 패턴들을 정렬하게 되면, 서로 이웃하는 패턴들은 같거나 유사한 길이를 가질 것이다. 따라서 패턴 길이에 의하여 정렬된 패턴들을 그룹화할 경우, 최대한 비슷한 길이를 가지는 패턴들이 한 그룹에 모이게 된다. 반면에 패턴 길이에 의하여 정렬이 되지 않은 경우, 한 그룹에 포함되는 패턴들의 길이 차이는 클 수 있다.
예를 들어, 도 5를 참조하면, 제 1 내지 제 8 패턴들은 패턴 길이에 의하여 정렬된 경우이다. 이 경우, 제 1 내지 제 4 패턴은 제 1 패턴 저장 공간(310)에 저 장된다. 제 1 및 제 2 패턴의 패턴 길이는 '3'이고, 제 3 및 제 4 패턴의 패턴 길이는 '5'이다. 따라서, 수학식 1을 참조하면, 제 1 패턴 저장 공간(310)의 최대 시프트 값은 '2'가 된다. 이는 시프트 테이블을 참조하는 매칭 결과에 따라, 타겟 텍스트 내에서 스킵할 수 있는 캐릭터의 수가 최대 '2'임을 의미한다.
또한, 제 5 내지 제 8 패턴은 제 2 패턴 저장 공간(330)에 저장된다. 제 5 및 제 6 패턴의 패턴 길이는 '7'이고, 제 7 및 제 8 패턴의 패턴 길이는 '10'이다. 따라서, 수학식 1을 참조하면, 제 2 패턴 저장 공간(330)의 최대 시프트 값은 '6'이 된다. 이는 시프트 테이블을 참조하는 매칭 결과에 따라, 타겟 텍스트 내에서 스킵할 수 있는 캐릭터의 수가 최대 '6'임을 의미한다.
만약, 제 1 내지 제 8 패턴들이 패턴 길이에 의하여 정렬되지 않는다면, 제 1 및 제 2 패턴 저장 공간의 최대 시프트 값은 '6'보다 작은 값을 가질 수 있다.
예를 들어, 도 6를 참조하면, 제 2, 제 4, 제 6 및 제 7 패턴들이 제 1 패턴 저장 공간에 저장된다고 가정된다. 제 1, 제 3, 제 5 및 제 8 패턴들이 제 2 패턴 저장 공간에 저장된다고 가정된다.
이 경우, 제 1 패턴 저장 공간의 가장 짧은 패턴의 길이는 제 2 패턴 길이인 '3'일 것이다. 따라서, 수학식 1 을 참조하면, 제 1 패턴 저장 공간의 최대 시프트 값은 '2'가 될 것이다. 또한, 제 2 패턴 저장 공간의 가장 짧은 패턴의 길이는 제 1 패턴 길이인 '3'일 것이다. 따라서, 수학식 1 을 참조하면, 제 2 패턴 저장 공간의 최대 시프트 값은 '2'가 될 것이다. 이는 시프트 테이블을 참조하는 매칭 결과에 따라, 타겟 텍스트 내에서 스킵할 수 있는 캐릭터의 수가 최대 '2'로 제한됨을 의미한다.
상술한 바와 같이, 패턴들을 길이 순으로 정렬하게 되면, 작은 시프트 값을 가지는 패턴들은 하나의 코어에 모아지고, 큰 시프트 값을 가지는 패턴들은 다른 코어에 모아질 수 있다. 따라서, 큰 최대 시프트 값을 가지는 코어는 시프트 테이블을 참조하는 매칭 결과에 따라, 보다 많은 캐릭터들을 스킵할 수 있다. 그러므로, 문자열 매칭 동작은 패턴들이 길이 순으로 정렬하지 않은 경우보다 빠르게 수행될 수 있다.
한편, 본 발명의 실시 예에 따른 Wu-manber 알고리즘에 의한 문자열 매칭 동작은 예시적인 것으로 이해되어야 할 것이다. 예를 들어, 문자열 매칭 동작은 Aho-Corasick 스트링 매칭 알고리즘에 의하여 수행될 수 있음이 이해될 것이다.
도 7은 패턴 길이에 의하여 패턴들이 분할된 경우의 멀티 코어 프로세서에서의 문자열 매칭 동작을 보여주는 순서도이다.
S200 단계에서, 패턴들이 패턴 길이에 의하여 정렬될 것이다.
S220 단계에서, 패턴 길이에 의하여 정렬된 패턴들이 각 코어에 할당될 것이다. 패턴 길이에 의하여 패턴들이 정렬된 후 각 코어들에 할당되면, 작은 시프트 값을 갖는 패턴들과 상대적으로 큰 시프트 값을 작는 패턴들은 각각 다른 패턴 저장 공간에 모아질 것이다.
S240 단계에서, 분할된 패턴들을 사용하여 전처리 과정(Preprocessing)이 수행될 것이다. 여기서 전처리 과정이란 Wu-manber 알고리즘에서의 시프트 테이블(Shift tabel), 해시 테이블(Hash table) 및 프리픽스 테이블(Prefix table)이 구성되는 과정을 의미한다. 도 1 및 도 5를 참조하면, 본 발명의 실시 예에 따른 문자열 검색 장치(100)는 멀티 코어 프로세서에 최적화된 시프트 테이블을 구성할 것이다.
예를 들어, 패턴 길이에 의하여 패턴들이 분할된 경우, 작은 시프트 값을 갖는 패턴들과 상대적으로 큰 시프트 값을 갖는 패턴들은 각각 다른 패턴 저장 공간에 모아질 것이다.
S260 단계에서, 각 코어에서 병렬적으로 문자열 매칭 동작이 수행될 것이다. 도 1 및 도 5를 참조하면, 타겟 텍스트는 공통의 공유 주소 공간에 저장될 것이다. 또한, 패턴들은 각각 패턴 저장 공간에 저장되어 있으며, 패턴 저장 공간들은 각각 코어데 대응할 것이다. 코어들은 대응하는 패턴 저장 공간에 저장된 패턴들과 타겟 텍스트의 일치 여부에 대한 검색을 각각 독립적으로 수행할 것이다.
이 경우, 패턴 길이에 의하여 패턴들이 분할되었으므로, 상대적으로 큰 최대 시프트 값을 갖는 패턴들은 동일한 코어에 모아질 수 있을 것이다. 따라서, 큰 최대 시프트 값을 갖는 코어는 시프트 테이블을 참조하는 매칭 결과에 따라, 작은 시프트 값을 작는 코어에 비하여 많은 캐릭터들을 스킵할 수 있을 것이다. 그러므로 문자열 매칭 동작이 패턴 길이에 의하여 패턴들이 분할되지 않은 경우에 비하여 빠르게 수행될 수 있다.
도 8은 본 발명의 실시 예에 따른 멀티 코어 프로세서를 보여주는 블록도이고, 도 9는 본 발명의 다른 실시 예에 따른 멀티 코어 프로세서를 보여주는 블록도이다.
도 8를 참조하면, 쿼드 코어 프로세서가 도시되어 있다. 도 8의 멀티 코어 프로세서는 싱글 다이(single die)에 두 개의 듀얼 코어 프로세서가 집적된 쿼드 코어 프로세서 중앙 처리 장치(guad core processor CPU)이다. 듀얼 코어 중앙 처리 장치(dual core CPUs)는 동일한 아키텍처(architecture)를 갖는 두 개의 코어로 구성되며, L2 캐시 메모리(L2 cache memory)를 공유한다.
자세히 설명하면, 도 8의 멀티 코어 프로세서는 두 개의 듀얼 코어 프로세서가 하나의 칩 다이에 집적되어 있는 구조이다. 하나의 듀얼 코어 프로세서에서, L2 캐시 메모리(L2 cache memory)는 두 코어에 의해 공유되고, L1 캐시 메모리(L1 cache memory)들은 각각의 코어에서 개별적으로 사용된다.
도 8의 멀티 코어 프로세서가 문자열 검색 장치(100, 도 1 참조)로 사용되는 경우, 타겟 텍스트(target text)는 L2 캐시 메모리에 저장될 수 있을 것이다. 또한, L1 캐시 메모리는 패턴 저장 공간(Structure)으로 사용될 수 있을 것이다. 이 경우 각각의 코어는 독립적으로 L2 캐시 메모리에 저장된 타겟 텍스트에 엑세스하고, 독립적으로 L1 캐시 메모리에 저장된 패턴에 대한 문자열 매칭 동작을 수행할 것이다.
도 9를 참조하면, 쿼드 코어 프로세서가 도시되어 있다. 도 9의 멀티 코어 프로세서는 동일한 아키텍처를 갖는 네 개의 코어들을 포함한다. 도 9의 멀티 코어 프로세서는 싱글 칩(single chip) 상의 L3 캐시 메모리(L3 cache memory)를 포함한다.
도 9의 멀티 코어 프로세서는 상술한 인텔의 멈티 코어 프로세서와 유사한 구조를 가진다. 다만, 도 9의 멀티 코어 프로세서가 문자열 검색 장치(100, 도 1 참조)로 사용되는 경우에 타겟 텍스트(target text)는 L3 캐시 메모리(L3 cache memory)에 저장될 것이다. 또한, L2 캐시 메모리는 패턴 저장 공간(Structure)으로 사용될 것이다. 이 경우 각각의 코어는 독립적으로 L3 캐시 메모리에 저장된 타겟 텍스트에 엑세스하고, 독립적으로 L2 캐시 메모리에 저장된 패턴에 대한 문자열 매칭 동작을 수행할 것이다. 다만, 문자열 매칭 동작이 수행되는 경우, 실질적인 데이터는 모두 L1 캐시 메모리(L1 cache memory)에 로드되어 수행될 것이다.
상술한 바와 같이, 본 발명의 실시 예에 따른 문자열 매칭 동작은 도 8 및 도 9의 멀티 코어 프로세서에 적용될 수 있을 것이다. 코어들은 문자열 매칭 동작을 각각 수행할 것이다. 따라서 시스템의 성능은 멀티 코어 프로세서의 코어의 숫자에 비례하여 상승될 수 있을 것이다.
또한, 본 발명의 실시 예에 따른 문자열 매칭 동작은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함할 것이다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능 매체의 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것들일 수 있다.
컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD)ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬디스크(floptical disk)와 같은 자기-광 매 체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
한편, 본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
도 1은 본 발명의 실시 예에 따른 멀티 코어 프로세서를 이용한 문자열 검색 장치를 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 사전 편찬 순서에 따른 패턴의 할당을 보여주는 블록도이다.
도 3은 사전 편찬 순서에 의하지 않은 패턴의 분할을 보여주는 블록도이다.
도 4는 사전 편찬 순서에 의하여 패턴이 분할된 경우의 멀티 코어 프로세서에서의 문자열 매칭 동작을 보여주는 순서도이다.
도 5는 본 발명의 다른 실시 예에 따른 패턴 길이에 따른 패턴의 분할을 보여주는 블록도이다.
도 6은 패턴 길이에 의하지 않은 패턴의 분할을 보여주는 블록도이다.
도 7은 패턴 길이에 의하여 패턴들이 분할된 경우의 멀티 코어 프로세서에서의 문자열 매칭 동작을 보여주는 순서도이다.
도 8은 본 발명의 실시 예에 따른 멀티 코어 프로세서를 보여주는 블록도이다.
도 9는 본 발명의 다른 실시 예에 따른 멀티 코어 프로세서를 보여주는 블록도이다.

Claims (25)

  1. 멀티 코어 프로세서를 이용한 문자열 검색 방법에 있어서,
    사전 편찬 순서에 의하여, 패턴들이 코어들에 할당되는 단계; 및
    상기 코어들은 상기 사전 편찬 순서에 의하여 상기 코어들에 할당된 적어도 하나 이상의 패턴을 이용하여 각각 문자열 매칭 동작을 수행하는 단계를 포함하며,
    상기 문자열 매칭 동작을 수행하는 단계는,
    상기 코어들이 상기 코어들에 할당된 적어도 하나 이상의 패턴들을 이용하여 각각의 전처리 과정을 수행단계; 및
    상기 코어들이 상기 각각의 전처리 과정에서 얻어진 테이블을 이용하여 각각의 문자열 매칭 동작을 수행하는 단계를 포함하고,
    상기 문자열 매칭 동작을 수행하는 단계는 Wu-manber 알고리즘에 의하여 문자열 매칭 동작이 수행되며,
    상기 각각의 전처리 과정에서 얻어진 테이블은 프리픽스 테이블을 포함하고, 상기 프리픽스 테이블은 상기 프리픽스 테이블이 대응하는 코어에 따라 각각 다른 프리픽스 인덱스를 갖는 문자열 검색 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제 1 항에 있어서,
    상기 사전 편찬 순서는 상기 패턴들이 알파벳 문자인 경우에 상기 패턴들의 첫 두 개 문자의 알파벳 순서인 문자열 검색 방법.
  6. 제 1 항에 있어서,
    상기 코어들은 각각 독립적으로 문자열 매칭 동작을 수행하는 문자열 검색 방법.
  7. 제 1 항, 제 5 항 및 6 항 중 어느 한 항의 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체.
  8. 멀티 코어 프로세서를 이용한 문자열 검색 방법에 있어서,
    패턴 길이에 의하여, 패턴들이 코어들에 할당되는 단계; 및
    상기 코어들은 상기 패턴 길이에 의하여 상기 코어들에 할당된 적어도 하나 이상의 패턴들을 이용하여 각각 문자열 매칭 동작을 수행하는 단계를 포함하며,
    상기 문자열 매칭 동작을 수행하는 단계는,
    상기 코어들이 상기 코어들에 할당된 적어도 하나 이상의 패턴들을 이용하여 각각의 전처리 과정을 수행단계; 및
    상기 코어들이 상기 각각의 전처리 과정에서 얻어진 테이블을 이용하여 각각의 문자열 매칭 동작을 수행하는 단계를 포함하고,
    상기 문자열 매칭 동작을 수행하는 단계는 Wu-manber 알고리즘에 의하여 문자열 매칭 동작이 수행되며,
    상기 각각의 전처리 과정에서 얻어진 테이블은 시프트 테이블을 포함하고, 상기 시프트 테이블은 상기 시프트 테이블이 대응하는 코어에 따라 각각 다른 최대 시프트 값을 갖는 문자열 검색 방법.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 제 8 항에 있어서,
    상기 최대 시프트 값은 상기 시프트 테이블이 대응하는 코어에 할당된 적어도 하나 이상의 패턴들 중 가장 짧은 패턴의 길이에서 1 을 차감한 것으로 정의되는 문자열 검색 방법.
  13. 제 8 항에 있어서,
    상기 코어들은 각각 독립적으로 문자열 매칭 동작을 수행하는 문자열 검색 방법.
  14. 제 8 항, 제 12 항 및 제13항 중 어느 한 항의 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체.
  15. 패턴들이 저장되는 제 1 및 제 2 패턴 저장부;
    상기 제 1 및 제 2 패턴 저장부에 대응되며, 상기 제 1 및 제 2 패턴 저장부에 저장된 패턴들에 대한 문자열 매칭 동작을 수행하는 제 1 및 제 2 패턴 검색부를 포함하는 문자열 검색 장치로서,
    상기 패턴들은 사전 편찬 순서에 의해서 상기 제 1 및 제 2 패턴 저장부에 할당되고,
    상기 제 1 및 제 2 패턴 저장부에 저장된 패턴들에 대한 문자열 매칭 동작은 Wu-manber 알고리즘에 의하여 수행되며,
    상기 문자열 검색 장치는 상기 Wu-manber 알고리즘에 의하여 프리픽스 테이블을 구성하는 전처리 과정을 수행하되, 상기 제 1 및 제 2 패턴 검색부에 대응하는 프리픽스 테이블은 각각 다른 프리픽스 인덱스를 갖는 다른 문자열 검색 장치.
  16. 제 15 항에 있어서,
    상기 문자열 검색 장치는 상기 패턴들에 대한 문자열 매칭 동작을 수행하기 위한 타겟 텍스트를 저장하는 타겟 텍스트 저장부를 더 포함하되, 상기 제 1 및 제 2 패턴 검색부는 상기 타겟 텍스트 저장부에 각각 독립적으로 엑세스하는 문자열 검색 장치.
  17. 제 15 항에 있어서,
    상기 사전 편찬 순서는 상기 패턴들이 알파벳 문자인 경우에 상기 패턴들의 첫 두 개 문자의 알파벳 순서인 문자열 검색 장치.
  18. 삭제
  19. 삭제
  20. 제 15 항에 있어서,
    상기 프리픽스 인덱스는 상기 패턴들의 첫 두 개 문자의 알파벳 문자를 포함하는 문자열 검색 장치.
  21. 제 15 항에 있어서,
    상기 제 1 및 제 2 패턴 검색부는 각각 독립적으로 문자열 매칭 동작을 수행하는 문자열 검색 장치.
  22. 패턴들이 저장되는 제 1 및 제 2 패턴 저장부;
    상기 제 1 및 제 2 패턴 저장부에 대응되며, 상기 제 1 및 제 2 패턴 저장부에 저장된 패턴들에 대한 문자열 매칭 동작을 수행하는 제 1 및 제 2 패턴 검색부를 포함하는 문자열 검색 장치로서,
    상기 패턴들은 패턴 길이에 의해서 상기 제 1 및 제 2 패턴 저장부에 할당되고,
    상기 제 1 및 제 2 패턴 저장부에 저장된 패턴들에 대한 문자열 매칭 동작은 Wu-manber 알고리즘에 의하여 수행되며,
    상기 문자열 검색 장치는 상기 Wu-manber 알고리즘에 의하여 시프트 테이블을 구성하는 전처리 과정을 수행하되, 상기 제 1 및 제 2 패턴 저장부에 대응하는 시프트 테이블은 각각 다른 최대 시프트 값을 갖는 문자열 검색 장치.
  23. 삭제
  24. 삭제
  25. 제 22 항에 있어서,
    상기 제 1 패턴 저장부에 대응하는 최대 시프트 값은 상기 제 1 패턴 저장부에 할당된 패턴들 중 가장 짧은 패턴의 길이에서 1 을 차감한 것으로 정의되고, 상기 제 2 패턴 저장부에 대응하는 최대 시프트 값은 상기 제 2 패턴 저장부에 할당된 패턴들 중 가장 짧은 패턴의 길이에서 1 을 차감한 것으로 정의되는 문자열 검색 장치.
KR1020090063565A 2009-07-13 2009-07-13 멀티 코어 프로세서에 최적화된 문자열 검색 장치 및 그것의 문자열 검색 방법 KR101155433B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090063565A KR101155433B1 (ko) 2009-07-13 2009-07-13 멀티 코어 프로세서에 최적화된 문자열 검색 장치 및 그것의 문자열 검색 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090063565A KR101155433B1 (ko) 2009-07-13 2009-07-13 멀티 코어 프로세서에 최적화된 문자열 검색 장치 및 그것의 문자열 검색 방법

Publications (2)

Publication Number Publication Date
KR20110006095A KR20110006095A (ko) 2011-01-20
KR101155433B1 true KR101155433B1 (ko) 2012-06-15

Family

ID=43612973

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090063565A KR101155433B1 (ko) 2009-07-13 2009-07-13 멀티 코어 프로세서에 최적화된 문자열 검색 장치 및 그것의 문자열 검색 방법

Country Status (1)

Country Link
KR (1) KR101155433B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116881517A (zh) * 2023-07-25 2023-10-13 中科驭数(北京)科技有限公司 一种数据库数据处理方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080077793A1 (en) * 2006-09-21 2008-03-27 Sensory Networks, Inc. Apparatus and method for high throughput network security systems
US20090012958A1 (en) * 2003-11-03 2009-01-08 Sunder Rathnavelu Raj Multiple string searching using ternary content addressable memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090012958A1 (en) * 2003-11-03 2009-01-08 Sunder Rathnavelu Raj Multiple string searching using ternary content addressable memory
US20080077793A1 (en) * 2006-09-21 2008-03-27 Sensory Networks, Inc. Apparatus and method for high throughput network security systems

Also Published As

Publication number Publication date
KR20110006095A (ko) 2011-01-20

Similar Documents

Publication Publication Date Title
Shanbhag et al. Efficient top-k query processing on massively parallel hardware
US9406381B2 (en) TCAM search unit including a distributor TCAM and DRAM and a method for dividing a database of TCAM rules
KR101467589B1 (ko) 데이터 구조를 가지는 하나 이상의 장치 판독가능 매체, 및장치 실행가능 명령어를 구비한 하나 이상의 장치 판독가능 매체
US10705734B2 (en) Expanding variable sub-column widths as needed to store data in memory
JP5575997B1 (ja) 半導体装置及び半導体装置に対するエントリアドレス書き込み/読み出し方法
US20140122509A1 (en) System, method, and computer program product for performing a string search
CN104809179A (zh) 访问哈希表的装置和方法
Mutharaju et al. D-SPARQ: distributed, scalable and efficient RDF query engine
Ibrahim et al. Intelligent data placement mechanism for replicas distribution in cloud storage systems
JP6229024B2 (ja) 情報検索機能を備えたメモリ、その利用方法、装置、情報処理方法。
CN105577806A (zh) 一种分布式缓存方法及系统
Azad et al. Computing maximum cardinality matchings in parallel on bipartite graphs via tree-grafting
CN105677755A (zh) 一种处理图数据的方法及装置
JP5382383B2 (ja) データベース処理装置、データベース処理方法、プログラム及びデータベースのデータ構造
KR101155433B1 (ko) 멀티 코어 프로세서에 최적화된 문자열 검색 장치 및 그것의 문자열 검색 방법
Bender et al. Iceberg hashing: Optimizing many hash-table criteria at once
KR101075439B1 (ko) 멀티 코어 프로세서를 기반으로 하는 문자열 매칭 장치 및 그것의 문자열 매칭 방법
Shariar et al. Gpu accelerated indexing for high order tensors in google colab
Soroushnia et al. High performance pattern matching on heterogeneous platform
JP6205386B2 (ja) 半導体装置及び情報書込/読出方法
WO2014168199A1 (ja) 論理演算方法および情報処理装置
Nakano et al. The super warp architecture with random address shift
Sebastião et al. Implementation and performance analysis of efficient index structures for DNA search algorithms in parallel platforms
CN110334251B (zh) 一种有效解决rehash冲突的元素序列生成方法
JPS6143338A (ja) 連想技術を使用して稀薄なデータベースをサーチする方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150429

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160607

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170605

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180605

Year of fee payment: 7