WO2012030027A1 - 멀티 코어 프로세서를 기반으로 하는 문자열 매칭 장치 및 그것의 문자열 매칭 방법 - Google Patents

멀티 코어 프로세서를 기반으로 하는 문자열 매칭 장치 및 그것의 문자열 매칭 방법 Download PDF

Info

Publication number
WO2012030027A1
WO2012030027A1 PCT/KR2010/009544 KR2010009544W WO2012030027A1 WO 2012030027 A1 WO2012030027 A1 WO 2012030027A1 KR 2010009544 W KR2010009544 W KR 2010009544W WO 2012030027 A1 WO2012030027 A1 WO 2012030027A1
Authority
WO
WIPO (PCT)
Prior art keywords
string matching
patterns
pattern
pattern storage
matching
Prior art date
Application number
PCT/KR2010/009544
Other languages
English (en)
French (fr)
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 US13/819,767 priority Critical patent/US20130173647A1/en
Publication of WO2012030027A1 publication Critical patent/WO2012030027A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B30/00ICT specially adapted for sequence analysis involving nucleotides or amino acids
    • 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
    • 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

Definitions

  • the present invention relates to a string matching apparatus and method, and more particularly, to a string matching apparatus and a string matching method based on a multi-core processor.
  • String matching algorithm is recognized as an efficient algorithm for searching for a specific pattern in a database containing a lot of information.
  • string matching algorithms provide an efficient way to search for specific patterns in human genome projects, virus analysis, fire protection systems in computer networks, and the like.
  • Wu-Manber algorithm is known as a string matching algorithm.
  • the Wu-Manber algorithm generates a shift table, a hash table and a prefix table in pre-processing.
  • the Wu-Manber algorithm uses tables created during the preprocessing to detect whether a specific pattern exists in the text.
  • An object of the present invention is to provide a string matching device and a string matching method for reducing the amount of computation on a multi-core processor.
  • the string matching method is based on a multi-core processor.
  • the string matching method may include: sorting patterns based on a suffix block; Distributing and storing the sorted patterns in a pattern storage unit corresponding to each core; And performing string matching on the target text using the patterns stored in the pattern storage unit corresponding to each core.
  • the string matching is performed by a Wu-Manber algorithm.
  • the performing of the string matching may include: performing a preprocessing process on patterns stored in each of the pattern storage units; And performing string matching on the target text with reference to the tables generated in the preprocessing step.
  • the performing of the preprocessing process may include generating a shift table.
  • the shift value is set to 0 for the combination of the same characters as the suffix blocks of the patterns stored in the respective pattern storage units.
  • the pretreatment process in the performing of the pretreatment process, is paralleled by the respective cores.
  • the string matching in performing the string matching, is processed in parallel by the respective cores.
  • the patterns are sorted according to a dictionary compilation order of characters included in the suffix block.
  • a string matching method based on a multi-core processor may include: arranging patterns in a dictionary compilation order based on characters included in a suffix block; Distributing and storing the sorted patterns in a pattern storage unit corresponding to each core; Performing a preprocessing process on patterns stored in a pattern storage unit corresponding to each core; And performing string matching on the target text by referring to the tables generated in the preprocessing step.
  • the preprocessing process and the string matching are performed by a Wu-Manber algorithm.
  • the preprocessing process and the string matching are processed in parallel by the respective cores.
  • a string matching device includes: a pattern alignment module configured to arrange patterns based on a suffix block; First and second pattern storage units for storing the sorted patterns; And first and second pattern matching units respectively corresponding to the first and second pattern storage units and performing string matching on the target text using patterns stored in the first and second pattern storage units, respectively.
  • the string matching device may further include a shared data storage module configured to store the target text.
  • the first and second pattern matching units access the shared data storage module to read the target text.
  • the first and second pattern matching units perform the string matching by a Wu-Manber algorithm.
  • the first and second pattern matching units perform a preprocessing process on patterns stored in the first and second pattern storage units, respectively, to generate a shift table, a hash table, and a prefix table.
  • the first and second pattern matching units may generate shift values for combinations of characters identical to suffix blocks of patterns stored in the first and second pattern storage units when the shift table is generated. Is set to 0.
  • the preprocessing process and the string matching may be processed in parallel by the first and second pattern matching units.
  • the first and second pattern matching units are implemented with a multi-core processor.
  • the pattern sorting module sorts the patterns according to a dictionary compilation order of characters included in the suffix block.
  • the target text is characterized in that the genomic gene sequence.
  • the size of the suffix block is characterized in that 2.
  • the utilization of hardware resources can be increased based on a multi-core processor.
  • the amount of computation required for string matching can be reduced by performing a preprocessing process on the sorted patterns. Therefore, the execution time of the string matching operation can be reduced.
  • FIG. 1 is a block diagram illustrating a string matching apparatus according to an exemplary embodiment of the present invention.
  • 3 is a diagram illustrating string matching for aligned patterns.
  • 4 is a diagram illustrating string matching for unaligned patterns.
  • FIG. 5 is a flowchart illustrating a string matching method according to an embodiment of the present invention.
  • FIG. 6 is a block diagram illustrating a first embodiment of a multi-core processor.
  • FIG. 7 is a block diagram illustrating a second embodiment of a multi-core processor.
  • the string matching device 100 is based on a multi-core processor.
  • the string matching device 100 may include a pattern sorting module 110, a pattern storage module 120, a multi-core processor 130, and a shared data storage module. , 140).
  • the pattern alignment module 110 sorts the given patterns according to a dictionary compilation order based on the suffix block of the patterns.
  • the suffix block means n characters from the back of the characters constituting the pattern when the size of the suffix block is n. For example, if a given pattern is 'ACAAAG' and the size of the suffix block is 2, the suffix block will be 'AG'.
  • a method of sorting patterns according to a dictionary compilation order based on the suffix block will be described in detail with reference to FIG. 2 below.
  • the pattern storage module 120 includes first to n-th pattern storage units 120_1 to 120_n.
  • the patterns aligned in the pattern alignment module 110 are distributed and stored in the first to nth pattern storage units 120_1 to 120_n.
  • the patterns may be evenly distributed to the respective pattern storage units 120_1 to 120_n in consideration of the number of the pattern storage units. For example, when the pattern storage module 120 includes two pattern storage units and the number of patterns is eight, the number of patterns stored in one pattern storage unit will be four.
  • the pattern storage module 120 may include a cache memroy or the like.
  • the cache memory includes static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), flash memory (Flash memory), phase-change RAM (PRAM), magnetic RAM (MRAM), and resistive RAM (RRAM), It may be implemented as a ferroelectric RAM (FRAM).
  • the multi-core processor 130 includes first to nth cores 130_1 to 130_n.
  • the first to nth cores 130_1 to 130_n correspond to the first to nth pattern storage units 120_1 to 120_n.
  • the first to n th cores 130_1 to 130_n respectively perform a preprocessing process on the patterns stored in the first to nth pattern storage units 120_1 to 120_n.
  • the first to nth cores 130_1 to 130_n refer to the preprocessing results and perform string matching on the target text, respectively.
  • the preprocessing and string matching are processed in parallel by the multi-core processor 130.
  • the first to n th cores 130_1 to 130_n access the shared data storage module 140 to read the target text.
  • the shared data storage module 140 stores the target text provided from the database.
  • the target text contains the strings to be matched.
  • the subject text may be a gene sequence in a human genome project, traffic data in an Intrusion Detection System (IDS), or the like.
  • IDS Intrusion Detection System
  • the shared data storage module 140 may include a cache memory and the like.
  • the cache memory may be implemented as SRAM, DRAM, SDRAM, flash memory, PRAM, MRAM, RRAM, and FRAM.
  • the string matching apparatus 100 performs parallel processing on preprocessing and string matching based on the multi-core processor 130. Therefore, the operation speed is improved as compared with the case based on the single core processor.
  • the string matching apparatus 100 sorts the patterns according to a dictionary compilation order based on given patterns based on the suffix block, and improves the efficiency of string matching. Store in storage.
  • the structure of the string matching device 100 illustrated in FIG. 1 is exemplary, and the string matching device 100 may be configured in various forms.
  • the multi-core processor may include a plurality of cores, a plurality of pattern storage units, and a shared data storage module.
  • the suffix block of the patterns is two.
  • eight patterns “ACAAAG”, “ACCCCT”, “ACAATT”, “ACGGTT”, “AGAAAG”, “GAAATT”, “ACCCCT”, and “GACCGT” are illustrated.
  • the suffix block of each of the patterns is 'AG', 'CT', 'TT', 'TT', 'AG', 'TT', 'CT', 'GT' to be.
  • the pattern sorting module 110 sorts the given patterns according to the dictionary compilation order based on the suffix blocks. That is, the patterns are sorted according to the dictionary compilation order of the characters in the suffix block. For example, patterns “ACAAAG” and “AGAAAG” having a suffix block "AG” have higher priority than patterns “ACCCCT” and “GACCCT” having a suffix block "CG”.
  • the patterns 'ACAAAG' and 'AGAAAG' are sorted by 1, and the patterns 'ACCCCT' and 'GACCCT' are sorted by 2
  • the patterns 'GACCGT' are arranged in three ranks, and the patterns 'ACAATT', 'ACGGTT' and 'GAAATT' are arranged in four ranks.
  • patterns that are determined to be in the same order when sorted according to the dictionary compilation order based on the suffix block may be sorted in any order.
  • patterns that are determined to be in the same order when sorted according to the dictionary compilation order based on the suffix block may be sorted according to the dictionary compilation order based on all the letters constituting each pattern.
  • 3 is a diagram illustrating string matching for aligned patterns.
  • 4 is a diagram illustrating string matching for unaligned patterns.
  • patterns aligned by the pattern alignment module 110 shown in FIG. 2 are distributed and stored in the first and second pattern storage units 120_1 and 120_2. That is, the patterns 'ACAAAG', 'AGAAAG', 'ACCCCT', and 'GACCCT' are stored in the first pattern storage unit 120_1, and the patterns 'GACCGT', 'ACAATT', 'ACGGTT', and 'GAAATT' are It is stored in the second pattern storage unit 120_2.
  • patterns before being aligned by the pattern alignment module 110 illustrated in FIG. 2 are distributed and stored in the first and second pattern storage units 120_1 and 120_2. That is, the patterns 'ACAAAG', 'ACCCCT', 'ACAATT' and 'ACGGTT' are the first pattern storage unit 120_1, 'AGAAAG', 'GAAATT', 'GACCCT' and 'GACCGT' are the second pattern storage unit. Stored at 120_2.
  • the first core 130_1 performs string matching on patterns stored in the first pattern storage unit 120_1.
  • the second core 130_2 performs string matching on the patterns stored in the second pattern storage unit 120_2. That is, string matching is parallelized by the first and second cores 130_1 and 130_2.
  • the string matching is applied to the Wu-Manber algorithm.
  • the Wu-Manber algorithm after a preprocessing process for generating a shift table, a hash table, and a prefix table is performed, string matching is performed by referring to the tables generated during the preprocessing. do.
  • the shift table has a shift value for the combination of characters that can come from the given patterns.
  • the shift value is a value indicating how many characters to skip matching from the previous matching position to the next matching position. That is, the shift value refers to the number of characters in which string matching is omitted. If the shift value is 0, string matching is performed by referring to the hash table and the prefix table. Therefore, the smaller the number of items having a shift value of zero in the shift table, the less the amount of computation for string matching.
  • each core in generating the shift table in the preprocessing, sets the shift value to 0 for a combination of the same characters as the suffix blocks of the given patterns. This is explained in more detail with reference to FIGS. 3 and 4 again.
  • the first core 130_1 generates a shift table in which the number of items having a shift value of 0 is 2 in the preprocessing process.
  • the suffix block has two types of patterns stored in the second pattern storage unit 120_2.
  • the second core 130_2 generates a shift table in which the number of items having a shift value of 0 is 2 in the preprocessing process.
  • the first core 130_1 generates a shift table in which the number of items having a shift value of 0 is 3 in the preprocessing process.
  • the second core 130_2 generates a shift table in which the number of items having a shift value of zero is four in the preprocessing process.
  • the shift table for patterns sorted according to the precompilation order based on the suffix block has fewer shift values than zero for the unaligned patterns. Have items. This means that the computation amount for string matching by the Wu-Manber algorithm can be reduced by sorting the patterns according to the dictionary compilation order based on the suffix block.
  • the string matching by the Wu-Manber algorithm according to an embodiment of the present invention is an example, the string matching may be performed by the Aho-Corasick algorithm.
  • FIG. 5 is a flowchart illustrating a string matching method according to an embodiment of the present invention. Referring to Fig. 5, first, given patterns are sorted according to the dictionary compilation order based on the suffix block (step S110).
  • the sorted patterns are distributed and stored in each pattern storage unit (step S120).
  • the sorted patterns are distributed and stored in each pattern storage unit (step S120).
  • a preprocessing process for the patterns stored in the pattern storage unit is performed (step S130). At this time, the preprocessing process is performed in parallel in each core. When the Wu-Manber algorithm is applied, this preprocessing generates shift tables, hash tables, and prefix tables.
  • step S140 string matching is performed on the target text (step S140).
  • string matching is processed in parallel in each core.
  • each core accesses a shared data module to read the target text.
  • the preprocessing process and the string matching are performed in parallel based on the multi-core processor. Therefore, the operation speed is improved as compared with the case based on the single core processor.
  • given patterns are sorted according to a dictionary compilation order based on the suffix block, and the sorted patterns are distributed and stored in respective pattern storage units. This reduces the amount of computation for string matching.
  • FIG. 6 is a block diagram illustrating a first embodiment of a multi-core processor.
  • 7 is a block diagram illustrating a second embodiment of a multi-core processor.
  • the multi-core processor of FIG. 6 is a central processing unit incorporating two dual core processors in a single die. That is, the multi-core processor of FIG. 6 has a structure in which two dual-core processors are integrated on one chip.
  • a dual core processor is composed of two cores having the same architecture, and each core shares an L2 cache memory.
  • L1 cache memories are allocated to each corresponding core.
  • the L1 cache memory may be used as the pattern storage unit.
  • the target text may be stored in the L2 cache memory.
  • the preprocessing process for the patterns stored in the L1 cache memory may be processed in parallel by each core.
  • Each core can then access the L2 cache memory to read the target text during string matching.
  • the multi-core processor of FIG. 7 includes four cores with the same architecture.
  • the multi-core processor of FIG. 7 includes an L3 cache memory.
  • the L2 cache memory may be used as the pattern storage unit.
  • the target text may be stored in the L3 cache memory.
  • the preprocessing process for the patterns stored in the L2 cache memory may be processed in parallel by each core.
  • Each core can then access the L3 cache memory to read the target text during string matching.
  • data generated in the process of performing string matching may be temporarily stored in the L1 cache memory.
  • the string matching device may be implemented as a multi-core processor having various structures. At this time, string matching is parallelized by each core. Therefore, the performance of the string matching device will improve as the number of cores included in the multi-core processor increases.
  • the string matching apparatus may include a computer readable recording medium.
  • the computer readable recording medium may include program instructions, data files, data structures, etc. alone or in combination.
  • computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical media such as CD) ROM, DVD, and floppy disks.
  • program instructions of the computer readable recording medium may be specially designed for the present invention, or may be known in the computer software related art.
  • program instructions may include high-level language code that can be executed by a computer using an interpreter, as well as machine code such as produced by a compiler.
  • the string matching algorithm provides an efficient method for searching for a specific pattern in a human genome project, a virus analysis, a fire protection system of a computer network, and the like.

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)
  • Life Sciences & Earth Sciences (AREA)
  • Chemical & Material Sciences (AREA)
  • Analytical Chemistry (AREA)
  • Biophysics (AREA)
  • Proteomics, Peptides & Aminoacids (AREA)
  • Health & Medical Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biotechnology (AREA)
  • Evolutionary Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 멀티 코어 프로세서를 기반으로 하는 문자열 매칭 장치 및 문자열 매칭 방법에 관한 것이다. 본 발명의 실시 예에 따른 문자열 매칭 방법은 서픽스 블록에 근거하여 패턴들을 정렬하는 단계; 상기 정렬된 패턴들을 각각의 코어에 대응하는 패턴 저장부에 분배하여 저장하는 단계; 및 상기 각각의 코어에 대응하는 패턴 저장부에 저장되어 있는 패턴들을 이용하여 대상 텍스트에 대한 문자열 매칭을 수행하는 단계를 포함한다. 본 발명의 실시 예에 따른 문자열 매칭 장치 및 문자열 매칭 방법에 의하면, 멀티 코어 프로세서를 기반으로 하여 하드웨어 자원에 대한 활용도를 높일 수 있다. 또한, 정렬된 패턴들에 대한 전처리 과정을 수행함으로써 문자열 매칭에 필요한 연산량을 줄일 수 있다. 따라서, 문자열 매칭 동작의 실행시간을 줄일 수 있다.

Description

멀티 코어 프로세서를 기반으로 하는 문자열 매칭 장치 및 그것의 문자열 매칭 방법
본 발명은 문자열 매칭 장치 및 방법에 관한 것으로, 좀 더 구체적으로 멀티 코어 프로세서를 기반으로 하는 문자열 매칭 장치 및 문자열 매칭 방법에 관한 것이다.
문자열 매칭 알고리즘(string matching algorithm)은 많은 정보를 포함하는 데이터 베이스에서 특정 패턴을 검색하는 효율적인 알고리즘으로 인식되고 있다. 예를 들어, 문자열 매칭 알고리즘은 인간 게놈 프로젝트, 바이러스 분석, 컴퓨터 네트워크의 방화시스템 등에서 특정 패턴을 검색하는 효율적인 방법을 제공한다.
문자열 매칭 알고리즘으로 Wu-Manber 알고리즘 등이 알려져 있다. Wu-Manber 알고리즘은 전처리 과정(pre-processing)에서 시프트 테이블(shift table), 해시 테이블(hash table) 및 프리픽스 테이블(prefix table)을 생성한다. Wu-Manber 알고리즘은 전처리 과정에서 생성된 테이블들을 이용하여 텍스트에 특정 패턴이 존재하는지 여부를 검색한다.
한편, 싱글 코어 프로세서(single-core processor) 성능의 한계로 인해, 멀티 코어 프로세서(multi-core processor)의 활용이 부각되고 있다. 특히, 컴퓨터 과학 또는 컴퓨터 공학의 분야에 있어서, 멀티 코어 프로세서의 중요성은 점점 증가하고 있다. 이에 따라, 멀티 코어 프로세서를 이용한 문자열 매칭 방법이 요구된다.
본 발명의 목적은 멀티 코어 프로세서 기반에서 연산량을 줄이기 위한 문자열 매칭 장치 및 문자열 매칭 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 문자열 매칭 방법은 멀티 코어 프로세서를 기반으로 한다. 상기 문자열 매칭 방법은 서픽스 블록에 근거하여 패턴들을 정렬하는 단계; 상기 정렬된 패턴들을 각각의 코어에 대응하는 패턴 저장부에 분배하여 저장하는 단계; 및 상기 각각의 코어에 대응하는 패턴 저장부에 저장되어 있는 패턴들을 이용하여 대상 텍스트에 대한 문자열 매칭을 수행하는 단계를 포함한다.
실시 예에 있어서, 상기 문자열 매칭을 수행하는 단계에서, 상기 문자열 매칭은 Wu-Manber 알고리즘에 의해 수행된다.
실시 예에 있어서, 상기 문자열 매칭을 수행하는 단계는, 상기 각각의 패턴 저장부에 저장되어 있는 패턴들에 대한 전처리 과정을 수행하는 단계; 및 상기 전처리 과정에서 생성된 테이블들을 참조하여, 상기 대상 텍스트에 대한 문자열 매칭을 수행하는 단계를 포함한다.
실시 예에 있어서, 상기 전처리 과정을 수행하는 단계는 시프트 테이블을 생성하는 단계를 포함한다. 그리고, 상기 시프트 테이블을 생성할 때, 상기 각각의 패턴 저장부에 저장되어 있는 패턴들의 서픽스 블록과 동일한 문자들의 조합에 대해서는 시프트 값을 0으로 설정한다.
실시 예에 있어서, 상기 전처리 과정을 수행하는 단계에서, 상기 전처리 과정은 상기 각각의 코어에 의해 병렬 처리된다.
실시 예에 있어서, 상기 문자열 매칭을 수행하는 단계에서, 상기 문자열 매칭은 상기 각각의 코어에 의해 병렬 처리된다.
실시 예에 있어서, 상기 패턴들을 정렬하는 단계에서, 상기 패턴들이 상기 서픽스 블록에 포함되는 문자들의 사전 편찬 순서에 따라 정렬된다.
본 발명의 다른 실시 예에 따라 멀티 코어 프로세서를 기반으로 하는 문자열 매칭 방법은, 서픽스 블록에 포함되는 문자들에 근거하여 사전 편찬 순서에 따라 패턴들을 정렬하는 단계; 상기 정렬된 패턴들을 각각의 코어에 대응하는 패턴 저장부에 분배하여 저장하는 단계; 상기 각각의 코어에 대응하는 패턴 저장부에 저장되어 있는 패턴들에 대한 전처리 과정을 수행하는 단계; 및 상기 전처리 과정에서 생성된 테이블들을 참조하여, 대상 텍스트에 대한 문자열 매칭을 수행하는 단계를 포함한다.
실시 예에 있어서, 상기 전처리 과정을 수행하는 단계 및 상기 문자열 매칭을 수행하는 단계에서, 상기 전처리 과정 및 문자열 매칭은 Wu-Manber 알고리즘에 의해 수행된다.
실시 예에 있어서, 상기 전처리 과정을 수행하는 단계 및 상기 문자열 매칭을 수행하는 단계에서, 상기 전처리 과정 및 문자열 매칭은 상기 각각의 코어에 의해 병렬 처리된다.
본 발명의 실시 예에 따른 문자열 매칭 장치는 서픽스 블록에 근거하여 패턴들을 정렬하는 패턴 정렬 모듈; 상기 정렬된 패턴들을 저장하는 제 1 및 제 2 패턴 저장부; 및 상기 제 1 및 제 2 패턴 저장부에 각각 대응하고, 상기 제 1 및 제 2 패턴 저장부에 저장되어 있는 패턴들을 이용하여 대상 텍스트에 대한 문자열 매칭을 각각 수행하는 제 1 및 제 2 패턴 매칭부를 포함한다.
실시 예에 있어서, 상기 문자열 매칭 장치는 상기 대상 텍스트를 저장하는 공유 데이터 저장 모듈을 더 포함한다. 그리고, 상기 제 1 및 제 2 패턴 매칭부는 상기 공유 데이터 저장 모듈에 접근하여 상기 대상 텍스트를 읽어낸다.
실시 예에 있어서, 상기 제 1 및 제 2 패턴 매칭부는 Wu-Manber 알고리즘에 의해 상기 문자열 매칭을 수행된다.
실시 예에 있어서, 상기 제 1 및 제 2 패턴 매칭부는 상기 제 1 및 제 2 패턴 저장부에 저장되어 있는 패턴들에 대한 전처리 과정을 각각 수행하여 시프트 테이블, 해시 테이블 및 프리픽스 테이블을 생성한다.
실시 예에 있어서, 상기 제 1 및 제 2 패턴 매칭부는, 상기 시프트 테이블을 생성할 때, 상기 제 1 및 제 2 패턴 저장부에 저장되어 있는 패턴들의 서픽스 블록과 동일한 문자들의 조합에 대해서는 시프트 값을 0으로 설정한다.
실시 예에 있어서, 상기 전처리 과정 및 상기 문자열 매칭은 상기 제 1 및 제 2 패턴 매칭부에 의해 병렬 처리된다.
실시 예에 있어서, 상기 제 1 및 제 2 패턴 매칭부는 멀티 코어 프로세서로 구현된다. 그리고, 상기 패턴 정렬 모듈은 상기 서픽스 블록에 포함되는 문자들의 사전 편찬 순서에 따라 상기 패턴들을 정렬한다.
실시 예에 있어서, 상기 대상 텍스트는 게놈 유전자 시퀀스인 것을 특징으로 한다. 그리고, 상기 서픽스 블록의 크기는 2인 것을 특징으로 한다.
본 발명의 실시 예에 따른 문자열 매칭 장치 및 문자열 매칭 방법에 의하면, 멀티 코어 프로세서를 기반으로 하여 하드웨어 자원에 대한 활용도를 높일 수 있다. 또한, 정렬된 패턴들에 대한 전처리 과정을 수행함으로써 문자열 매칭에 필요한 연산량을 줄일 수 있다. 따라서, 문자열 매칭 동작의 실행시간을 줄일 수 있다.
도 1은 본 발명의 실시 예에 따른 문자열 매칭 장치를 보여주는 블록도이다.
도 2는 서픽스 블록에 근거하여 정렬하기 전과 후의 패턴들을 보여주는 도면이다.
도 3은 정렬된 패턴들에 대한 문자열 매칭을 나타내는 도면이다.
도 4는 정렬되지 않은 패턴들에 대한 문자열 매칭을 나타내는 도면이다.
도 5는 본 발명의 실시 예에 따른 문자열 매칭 방법을 설명하기 위한 순서도이다.
도 6은 멀티 코어 프로세서의 제 1 실시 예를 보여주는 블록도이다.
도 7는 멀티 코어 프로세서의 제 2 실시 예를 보여주는 블록도이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명한다.
도 1은 본 발명의 실시 예에 따른 문자열 매칭 장치를 보여주는 블록도이다. 도 1을 참조하면, 문자열 매칭 장치(100)는 멀티 코어 프로세서를 기반으로 한다. 문자열 매칭 장치(100)는 패턴 정렬 모듈(pattern sorting module, 110), 패턴 저장 모듈(pattern storage module, 120), 멀티 코어 프로세서(multi-core processor, 130) 및 공유 데이터 저장 모듈(shared data storage module, 140)을 포함한다.
패턴 정렬 모듈(110)은 패턴들의 서픽스(suffix) 블록에 근거하여 사전 편찬 순서에 따라 주어진 패턴들을 정렬한다. 여기서, 서픽스 블록은, 서픽스 블록의 크기가 n이라고 할 때, 패턴을 구성하는 문자들 중 뒤에서부터 n개의 문자들을 의미한다. 예를 들어, 주어진 패턴이 ‘ACAAAG’이고, 서픽스 블록의 크기가 2라고 할 때, 서픽스 블록은‘AG’일 것이다. 서픽스 블록에 근거하여 사전 편찬 순서에 따라 패턴들을 정렬하는 방법은 이하의 도 2를 참조하여 상세하게 설명된다.
패턴 저장 모듈(120)은 제 1 내지 제 n 패턴 저장부(120_1~120_n)를 포함한다. 패턴 정렬 모듈(110)에서 정렬된 패턴들은 제 1 내지 제 n 패턴 저장부(120_1~120_n)에 분배되어 저장된다. 이때, 멀티-코어 프로세서가 지원되는 하드웨어의 자원을 효율적으로 사용하기 위해, 패턴 저장부들의 수를 고려하여 패턴들이 균등하게 각각의 패턴 저장부(120_1~120_n)에 분배될 수 있다. 예를 들어, 패턴 저장 모듈(120)이 두 개의 패턴 저장부를 포함하고, 패턴들의 수가 8개라고 할 때, 하나의 패턴 저장부에 저장되는 패턴들의 수는 4개일 것이다.
한편, 패턴 저장 모듈(120)은 캐시 메모리(cache memroy) 등을 포함할 수 있다. 그리고, 캐시 메모리는 SRAM(Static RAM), DRAM(Dynamic RAM), SDRAM (Synchronous DRAM), 플래시 메모리(Flash memory), PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM) 등으로 구현될 수 있다.
멀티 코어 프로세서(130)는 제 1 내지 제 n 코어(130_1~130_n)를 포함한다. 여기서, 제 1 내지 제 n 코어(130_1~130_n)는 제 1 내지 제 n 패턴 저장부(120_1~120_n)에 대응한다. 그리고, 제 1 내지 제 n 코어(130_1~130_n)는 제 1 내지 제 n 패턴 저장부(120_1~120_n)에 저장된 패턴들에 대한 전처리 과정을 각각 수행한다. 이후, 제 1 내지 제 n 코어(130_1~130_n)는 전처리 결과를 참조하여, 대상 텍스트(target text)에 대한 문자열 매칭을 각각 수행한다. 즉, 전처리 과정 및 문자열 매칭은 멀티 코어 프로세서(130)에 의해 병렬 처리된다. 이때, 제 1 내지 제 n 코어(130_1~130_n)는 대상 텍스트를 읽어내기 위해 공유 데이터 저장 모듈(140)에 접근한다.
공유 데이터 저장 모듈(140)은 데이터 베이스로부터 제공되는 대상 텍스트를 저장한다. 대상 텍스트는 매칭의 대상이 되는 문자열들을 포함한다. 예를 들면, 대상 텍스트는 인간 게놈 프로젝트에서의 유전자 시퀀스(sequence), 침입 탐지 시스템(Intrusion Detection System, IDS)에서의 트래픽(traffic) 데이터 등일 수 있다.
한편, 공유 데이터 저장 모듈(140)은 캐시 메모리 등을 포함할 수 있다. 그리고, 캐시 메모리는 SRAM, DRAM, SDRAM, 플래시 메모리, PRAM, MRAM, RRAM, FRAM 등으로 구현될 수 있다.
본 발명의 실시 예에 따른 문자열 매칭 장치(100)는 멀티 코어 프로세서(130)를 기반으로 하여 전처리 과정 및 문자열 매칭을 병렬 처리한다. 따라서, 싱글 코어 프로세서를 기반으로 하는 경우에 비해, 동작 속도가 향상된다.
또한, 본 발명의 실시 예에 따른 문자열 매칭 장치(100)는 문자열 매칭의 효율성을 높이기 위해, 주어진 패턴들을 서픽스 블록에 근거하여 사전 편찬 순서에 따라 패턴들을 정렬하고, 정렬된 패턴들을 각각의 패턴 저장부에 저장한다.
한편, 도 1에 도시되는 문자열 매칭 장치(100)의 구조는 예시적인 것으로서, 문자열 매칭 장치(100)는 다양한 형태로 구성될 수 있다. 예를 들어, 멀티 코어 프로세서는 복수의 코어들, 복수의 패턴 저장부들 및 공유 데이터 저장 모듈을 포함할 수 있다.
도 2는 서픽스 블록에 근거하여 정렬하기 전과 후의 패턴들을 보여주는 도면이다. 간결한 설명을 위해, 패턴을 이루는 문자들은 알파벳 문자이고, 패턴들의 서픽스 블록의 크기는 2라고 가정한다. 도 2를 참조하면, 예시적으로 8개의 패턴‘ACAAAG’, ‘ACCCCT’, ‘ACAATT’, ‘ACGGTT’, ‘AGAAAG’, ‘GAAATT’, ‘ACCCCT’, ‘GACCGT’이 도시된다. 여기서, 서픽스 블록의 크기가 2이므로, 패턴들 각각의 서픽스 블록은‘AG’, ‘CT’, ‘TT’, ‘TT’, ‘AG’, ‘TT’, ‘CT’, ‘GT’이다.
패턴 정렬 모듈(110)은 주어진 패턴들을 서픽스 블록에 근거하여 사전 편찬 순서에 따라 정렬한다. 즉, 패턴들은 서픽스 블록 내의 문자들의 사전 편찬 순서에 따라 정렬된다. 예를 들어, 서픽스 블록‘AG’를 갖는 패턴들‘ACAAAG’, ‘AGAAAG’은 서픽스 블록‘CG’를 갖는 패턴들‘ACCCCT’, ‘GACCCT’보다 높은 우선 순위를 갖는다.
이와 같이, 주어진 패턴들이 서픽스 블록에 근거하여 사전 편찬 순서에 따라 정렬되면, 패턴들‘ACAAAG’, ‘AGAAAG’은 1 순위로 정렬되고, 패턴들‘ACCCCT’, ‘GACCCT’은 2 순위로 정렬되며, 패턴‘GACCGT’은 3 순위로 정렬되고, 패턴들‘ACAATT’, ‘ACGGTT’, ‘GAAATT’은 4 순위로 정렬된다. 이때, 서픽스 블록에 근거하여 사전 편찬 순서에 따라 정렬될 때 동일 순위로 판정되는 패턴들끼리는 임의의 순서대로 정렬될 수 있다. 또는, 서픽스 블록에 근거하여 사전 편찬 순서에 따라 정렬될 때 동일 순위로 판정되는 패턴들끼리는 각각의 패턴을 구성하는 모든 문자들에 근거하여 사전 편찬 순서에 따라 정렬될 수 있다.
도 3은 정렬된 패턴들에 대한 문자열 매칭을 나타내는 도면이다. 도 4는 정렬되지 않은 패턴들에 대한 문자열 매칭을 나타내는 도면이다. 간결한 설명을 위해, 두 개의 패턴 저장부와 두 개의 코어를 가정한다.
도 3을 참조하면, 도 2에 도시된 패턴 정렬 모듈(110)에 의해 정렬된 패턴들이 제 1 및 제 2 패턴 저장부(120_1, 120_2)에 분배되어 저장된다. 즉, 패턴들‘ACAAAG’, ‘AGAAAG’, ‘ACCCCT’, ‘GACCCT’은 제 1 패턴 저장부(120_1)에 저장되고, 패턴들 ‘GACCGT’, ‘ACAATT’, ‘ACGGTT’, ‘GAAATT’은 제 2 패턴 저장부(120_2)에 저장된다.
도 4를 참조하면, 도 2에 도시된 패턴 정렬 모듈(110)에 의해 정렬되기 전의 패턴들이 제 1 및 제 2 패턴 저장부(120_1, 120_2)에 분배되어 저장된다. 즉, 패턴들 ‘ACAAAG’, ‘ACCCCT’, ‘ACAATT’, ‘ACGGTT’은 제 1 패턴 저장부(120_1),‘AGAAAG’, ‘GAAATT’, ‘GACCCT’, ‘GACCGT’은 제 2 패턴 저장부(120_2)에 저장된다.
도 3 및 도 4를 참조하면, 제 1 코어(130_1)는 제 1 패턴 저장부(120_1)에 저장되어 있는 패턴들에 대한 문자열 매칭을 수행한다. 제 2 코어(130_2)는 제 2 패턴 저장부(120_2)에 저장되어 있는 패턴들에 대한 문자열 매칭을 수행한다. 즉, 문자열 매칭은 제 1 및 제 2 코어(130_1, 130_2)에 의해 병렬 처리된다.
본 발명의 실시 예로서, 문자열 매칭은 Wu-Manber 알고리즘이 적용된다. Wu-Manber 알고리즘에 의하면, 시프트 테이블(shift table), 해시 테이블(hash table) 및 프리픽스 테이블(prefix table)을 생성하는 전처리 과정이 수행된 후에, 전처리 과정에서 생성된 테이블들을 참조하여 문자열 매칭이 수행된다.
시프트 테이블은 주어진 패턴들에서 나올 수 있는 문자들의 조합에 대한 시프트 값을 갖는다. 여기서, 시프트 값은 이전 매칭 위치에서 다음 매칭 위치까지 얼마나 많은 문자들에 대한 매칭을 건너뛸지를 나타내는 값이다. 즉, 시프트 값은 문자열 매칭이 생략되는 문자들의 수를 의미한다. 만약, 시프트 값이 0이면, 해시 테이블 및 프리픽스 테이블을 참조하여 문자열 매칭이 수행된다. 따라서, 시프트 테이블에서 시프트 값이 0인 항목들이 적을수록 문자열 매칭에 대한 연산량은 줄어든다.
한편, 각각의 코어는, 전처리 과정에서 시프트 테이블을 생성하는 데 있어서, 주어진 패턴들의 서픽스 블록과 동일한 문자들의 조합에 대해서는 시프트 값을 0으로 설정한다. 이는 다시 도 3 및 4를 참조하여 더욱 상세하게 설명된다.
도 3을 참조하면, 제 1 패턴 저장부(120_1)에 저장되어 있는 패턴들이 갖는 서픽스 블록의 종류는 2가지이다. 따라서, 제 1 코어(130_1)는 전처리 과정에서 시프트 값이 0인 항목들의 수가 2인 시프트 테이블을 생성한다. 그리고, 제 2 패턴 저장부(120_2)에 저장되어 있는 패턴들이 갖는 서픽스 블록의 종류는 2가지이다. 따라서, 제 2 코어(130_2)는 전처리 과정에서 시프트 값이 0인 항목들의 수가 2인 시프트 테이블을 생성한다. 결과적으로, 문자열 매칭 장치(100)는 전처리 과정에서 시프트 값이 0인 항목들의 수가 2+2=4인 시프트 테이블을 생성한다.
도 4를 참조하면, 제 1 패턴 저장부(120_1)에 저장되어 있는 패턴들이 갖는 서픽스 블록의 종류는 3가지이다. 따라서, 제 1 코어(130_1)는 전처리 과정에서 시프트 값이 0인 항목들의 수가 3인 시프트 테이블을 생성한다. 그리고, 제 2 패턴 저장부(120_2)에 저장되어 있는 패턴들이 갖는 서픽스 블록의 종류는 4가지이다. 따라서, 제 2 코어(130_2)는 전처리 과정에서 시프트 값이 0인 항목들의 수가 4인 시프트 테이블을 생성한다. 결과적으로, 문자열 매칭 장치(100)는 전처리 과정에서 시프트 값이 0인 항목들의 수가 3+4=7인 시프트 테이블을 생성한다.
도 3 및 4의 경우를 비교하면, 서픽스 블록에 근거하여 사전 편찬 순서에 따라 정렬된 패턴들에 대한 시프트 테이블이, 정렬되지 않은 패턴들에 대한 시프트 테이블보다 더 적은 수의 시프트 값이 0인 항목들을 갖는다. 이는 서픽스 블록에 근거하여 사전 편찬 순서에 따라 패턴들을 정렬함으로써, Wu-Manber 알고리즘에 의한 문자열 매칭에 대한 연산량이 줄어들 수 있음을 의미한다.
한편, 본 발명의 실시 예에 따른 Wu-Manber 알고리즘에 의한 문자열 매칭은 예시적인 것으로서, 문자열 매칭은 Aho-Corasick 알고리즘에 의해 수행될 수 있다.
도 5는 본 발명의 실시 예에 따른 문자열 매칭 방법을 설명하기 위한 순서도이다. 도 5를 참조하면, 우선, 주어진 패턴들이 서픽스 블록에 근거하여 사전 편찬 순서에 따라 정렬된다(단계 S110).
그리고, 정렬된 패턴들은 각각의 패턴 저장부에 분배되어 저장된다(단계 S120). 상술한 바와 같이, 서픽스 블록에 근거하여 정렬된 패턴들이 분배되기 때문에, 각각의 패턴 저장부에는 서로 같은 서픽스 블록을 갖는 패턴들이 저장될 가능성이 크다. 상술한 바와 같이, 이는 문자열 매칭을 병렬 처리하는데 있어서 연산량을 줄일 수 있음을 의미한다.
다음으로, 각각에 패턴 저장부에 저장되어 있는 패턴들에 대한 전처리 과정이 수행된다(단계 S130). 이때, 전처리 과정은 각각의 코어에서 병렬 처리된다. Wu-Manber 알고리즘이 적용되는 경우, 이러한 전처리 과정을 통해 시프트 테이블, 해시 테이블 및 프리픽스 테이블이 생성된다.
이후, 전처리 과정에서 생성된 테이블들을 참조하여, 대상 텍스트에 대한 문자열 매칭이 수행된다(단계 S140). 이때, 문자열 매칭은 각각의 코어에서 병렬 처리된다. 다만, 각각의 코어는 대상 텍스트를 읽어내기 위해 공유 데이터 모듈에 접근한다.
상술한 바와 같이, 본 발명의 실시 예에 따른 문자열 매칭 방법에 의해, 전처리 과정 및 문자열 매칭이 멀티 코어 프로세서를 기반으로 하여 병렬 처리된다. 따라서, 싱글 코어 프로세서를 기반으로 하는 경우에 비해, 동작 속도가 향상된다. 또한, 주어진 패턴들이 서픽스 블록에 근거하여 사전 편찬 순서에 따라 정렬되고, 정렬된 패턴들은 각각의 패턴 저장부에 분배되어 저장된다. 이로 인해, 문자열 매칭에 대한 연산량이 줄어든다.
도 6은 멀티 코어 프로세서의 제 1 실시 예를 보여주는 블록도이다. 도 7는 멀티 코어 프로세서의 제 2 실시 예를 보여주는 블록도이다.
도 6을 참조하면, 쿼드 코어 프로세서(quad core processor)가 도시된다. 도 6의 멀티 코어 프로세서는 싱글 다이(single die)에 두 개의 듀얼 코어 프로세서가 집적된 중앙 처리 장치이다. 즉, 도 6의 멀티 코어 프로세서는 두 개의 듀얼 코어 프로세서가 하나의 칩에 집적되어 있는 구조를 갖는다. 여기서, 듀얼 코어 프로세서(dual core processor)는 동일한 아키텍처(architecture)를 갖는 두 개의 코어로 구성된다 그리고, 각각의 코어는 L2 캐시 메모리(L2 cache memory)를 공유한다. 반면에, L1 캐시 메모리(L1 cache memory)들은 각각의 대응하는 코어에 할당된다.
도 6의 멀티 코어 프로세서가 문자열 매칭 장치로서 구현되는 경우, L1 캐시 메모리는 패턴 저장부로서 사용될 수 있다. 그리고, 대상 텍스트는 L2 캐시 메모리에 저장될 수 있다. 이 경우, L1 캐시 메모리에 저장된 패턴들에 대한 전처리 과정이 각각의 코어에 의해 병렬 처리될 수 있다. 그리고, 각각의 코어는 문자열 매칭을 수행하는 동안에 대상 텍스트를 읽어내기 위해 L2 캐시 메모리에 접근할 수 있다.
도 7을 참조하면, 도 6에 도시된 것과 다른 구조의 쿼드 코어 프로세서가 도시된다. 도 7의 멀티 코어 프로세서는 동일한 아키텍처를 갖는 네 개의 코어들을 포함한다. 그리고, 도 7의 멀티 코어 프로세서는 L3 캐시 메모리(L3 cache memory)를 포함한다.
도 7의 멀티 코어 프로세서가 문자열 매칭 장치로서 구현되는 경우, L2 캐시 메모리는 패턴 저장부로서 사용될 수 있다. 그리고, 대상 텍스트는 L3 캐시 메모리에 저장될 수 있다. 이 경우, L2 캐시 메모리에 저장된 패턴들에 대한 전처리 과정이 각각의 코어에 의해 병렬 처리될 수 있다. 그리고, 각각의 코어는 문자열 매칭을 수행하는 동안에 대상 텍스트를 읽어내기 위해 L3 캐시 메모리에 접근할 수 있다. 다만, 문자열 매칭을 수행하는 과정에서 발생하는 데이터는 L1 캐시 메모리에 임시 저장될 수 있다.
상술한 바와 같이, 본 발명의 실시 예에 따른 문자열 매칭 장치는 다양한 구조의 멀티 코어 프로세서로서 구현될 수 있다. 이때, 문자열 매칭은 각각의 코어에 의해 병렬 처리된다. 따라서, 문자열 매칭 장치의 성능은 멀티 코어 프로세서에 포함되는 코어들의 수가 증가할수록 향상될 것이다.
또한, 본 발명의 실시 예에 따른 문자열 매칭 장치는 컴퓨터 판독 가능 기록 매체를 포함할 수 있다. 컴퓨터 판독 가능 기록 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 예를 들어, 컴퓨터 판독 가능 기록 매체는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD)ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 실행하도록 특별히 구성되는 하드웨어 장치를 포함할 수 있다.
컴퓨터 판독 가능 기록 매체의 프로그램 명령은 본 발명을 위해 특별히 설계된 것이거나, 컴퓨터 소프트웨어 관련 분야에서 공지된 것일 수 있다. 예를 들어, 프로그램 명령은 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
본 발명의 실시 예에 따른 문자열 매칭 알고리즘은 인간 게놈 프로젝트, 바이러스 분석, 컴퓨터 네트워크의 방화시스템 등에서 특정 패턴을 검색하는 효율적인 방법을 제공한다.

Claims (20)

  1. 멀티 코어 프로세서를 기반으로 하는 문자열 매칭 방법에 있어서:
    서픽스 블록에 근거하여 패턴들을 정렬하는 단계;
    상기 정렬된 패턴들을 각각의 코어에 대응하는 패턴 저장부에 분배하여 저장하는 단계; 및
    상기 각각의 코어에 대응하는 패턴 저장부에 저장되어 있는 패턴들을 이용하여 대상 텍스트에 대한 문자열 매칭을 수행하는 단계를 포함하는 문자열 매칭 방법.
  2. 제 1 항에 있어서,
    상기 문자열 매칭을 수행하는 단계에서, 상기 문자열 매칭은 Wu-Manber 알고리즘에 의해 수행되는 문자열 매칭 방법.
  3. 제 2 항에 있어서,
    상기 문자열 매칭을 수행하는 단계는,
    상기 각각의 패턴 저장부에 저장되어 있는 패턴들에 대한 전처리 과정을 수행하는 단계; 및
    상기 전처리 과정에서 생성된 테이블들을 참조하여, 상기 대상 텍스트에 대한 문자열 매칭을 수행하는 단계를 포함하는 문자열 매칭 방법.
  4. 제 3 항에 있어서,
    상기 전처리 과정을 수행하는 단계는 시프트 테이블을 생성하는 단계를 포함하고,
    상기 시프트 테이블을 생성할 때, 상기 각각의 패턴 저장부에 저장되어 있는 패턴들의 서픽스 블록과 동일한 문자들의 조합에 대해서는 시프트 값을 0으로 설정하는 문자열 매칭 방법.
  5. 제 3 항에 있어서,
    상기 전처리 과정을 수행하는 단계에서, 상기 전처리 과정은 상기 각각의 코어에 의해 병렬 처리되는 문자열 매칭 방법.
  6. 제 3 항에 있어서,
    상기 문자열 매칭을 수행하는 단계에서, 상기 문자열 매칭은 상기 각각의 코어에 의해 병렬 처리되는 문자열 매칭 방법.
  7. 제 1 항에 있어서,
    상기 패턴들을 정렬하는 단계에서, 상기 패턴들이 상기 서픽스 블록에 포함되는 문자들의 사전 편찬 순서에 따라 정렬되는 문자열 매칭 방법.
  8. 멀티 코어 프로세서를 기반으로 하는 문자열 매칭 방법에 있어서:
    서픽스 블록에 포함되는 문자들에 근거하여 사전 편찬 순서에 따라 패턴들을 정렬하는 단계;
    상기 정렬된 패턴들을 각각의 코어에 대응하는 패턴 저장부에 분배하여 저장하는 단계;
    상기 각각의 코어에 대응하는 패턴 저장부에 저장되어 있는 패턴들에 대한 전처리 과정을 수행하는 단계; 및
    상기 전처리 과정에서 생성된 테이블들을 참조하여, 대상 텍스트에 대한 문자열 매칭을 수행하는 단계를 포함하는 문자열 매칭 방법.
  9. 제 8 항에 있어서,
    상기 전처리 과정을 수행하는 단계 및 상기 문자열 매칭을 수행하는 단계에서, 상기 전처리 과정 및 문자열 매칭은 Wu-Manber 알고리즘에 의해 수행되는 문자열 매칭 방법.
  10. 제 8 항에 있어서,
    상기 전처리 과정을 수행하는 단계 및 상기 문자열 매칭을 수행하는 단계에서, 상기 전처리 과정 및 문자열 매칭은 상기 각각의 코어에 의해 병렬 처리되는 문자열 매칭 방법.
  11. 서픽스 블록에 근거하여 패턴들을 정렬하는 패턴 정렬 모듈;
    상기 정렬된 패턴들을 저장하는 제 1 및 제 2 패턴 저장부; 및
    상기 제 1 및 제 2 패턴 저장부에 각각 대응하고, 상기 제 1 및 제 2 패턴 저장부에 저장되어 있는 패턴들을 이용하여 대상 텍스트에 대한 문자열 매칭을 각각 수행하는 제 1 및 제 2 패턴 매칭부를 포함하는 문자열 매칭 장치.
  12. 제 11 항에 있어서,
    상기 대상 텍스트를 저장하는 공유 데이터 저장 모듈을 더 포함하고,
    상기 제 1 및 제 2 패턴 매칭부는 상기 공유 데이터 저장 모듈에 접근하여 상기 대상 텍스트를 읽어내는 문자열 매칭 장치.
  13. 제 12 항에 있어서,
    상기 제 1 및 제 2 패턴 매칭부는 Wu-Manber 알고리즘에 의해 상기 문자열 매칭을 수행되는 문자열 매칭 장치.
  14. 제 13 항에 있어서,
    상기 제 1 및 제 2 패턴 매칭부는 상기 제 1 및 제 2 패턴 저장부에 저장되어 있는 패턴들에 대한 전처리 과정을 각각 수행하여 시프트 테이블, 해시 테이블 및 프리픽스 테이블을 생성하는 문자열 매칭 장치.
  15. 제 14 항에 있어서,
    상기 제 1 및 제 2 패턴 매칭부는, 상기 시프트 테이블을 생성할 때, 상기 제 1 및 제 2 패턴 저장부에 저장되어 있는 패턴들의 서픽스 블록과 동일한 문자들의 조합에 대해서는 시프트 값을 0으로 설정하는 문자열 매칭 장치.
  16. 제 13 항에 있어서,
    상기 전처리 과정 및 상기 문자열 매칭은 상기 제 1 및 제 2 패턴 매칭부에 의해 병렬 처리되는 문자열 매칭 장치.
  17. 제 16 항에 있어서,
    상기 제 1 및 제 2 패턴 매칭부는 멀티 코어 프로세서로 구현되는 문자열 매칭 장치.
  18. 제 11 항에 있어서,
    상기 패턴 정렬 모듈은 상기 서픽스 블록에 포함되는 문자들의 사전 편찬 순서에 따라 상기 패턴들을 정렬하는 문자열 매칭 장치.
  19. 제 11 항에 있어서,
    상기 대상 텍스트는 게놈 유전자 시퀀스인 것을 특징으로 하는 문자열 매칭 장치.
  20. 제 11 항에 있어서,
    상기 서픽스 블록의 크기는 2인 것을 특징으로 하는 문자열 매칭 장치.
PCT/KR2010/009544 2010-08-31 2010-12-30 멀티 코어 프로세서를 기반으로 하는 문자열 매칭 장치 및 그것의 문자열 매칭 방법 WO2012030027A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/819,767 US20130173647A1 (en) 2010-08-31 2010-12-30 String matching device based on multi-core processor and string matching method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2010-0084923 2010-08-31
KR1020100084923A KR101075439B1 (ko) 2010-08-31 2010-08-31 멀티 코어 프로세서를 기반으로 하는 문자열 매칭 장치 및 그것의 문자열 매칭 방법

Publications (1)

Publication Number Publication Date
WO2012030027A1 true WO2012030027A1 (ko) 2012-03-08

Family

ID=45033140

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2010/009544 WO2012030027A1 (ko) 2010-08-31 2010-12-30 멀티 코어 프로세서를 기반으로 하는 문자열 매칭 장치 및 그것의 문자열 매칭 방법

Country Status (3)

Country Link
US (1) US20130173647A1 (ko)
KR (1) KR101075439B1 (ko)
WO (1) WO2012030027A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014077614A1 (en) * 2012-11-19 2014-05-22 Samsung Sds Co., Ltd. Anti-malware system, method of processing data in the same, and computing device
KR101465132B1 (ko) * 2013-01-18 2014-11-25 연세대학교 산학협력단 다중바이트 처리 프리필터를 사용한 심층 패킷 검사 가속화 방법 및 이를 이용한 장치
US11748868B2 (en) * 2020-09-08 2023-09-05 Kla Corporation Unsupervised pattern synonym detection using image hashing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060161984A1 (en) * 2005-01-14 2006-07-20 Mircosoft Corporation Method and system for virus detection using pattern matching techniques
US20080270399A1 (en) * 2007-04-29 2008-10-30 Bo Feng Method and system for parallel flow-awared pattern matching

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5977890A (en) * 1997-06-12 1999-11-02 International Business Machines Corporation Method and apparatus for data compression utilizing efficient pattern discovery
US7516130B2 (en) * 2005-05-09 2009-04-07 Trend Micro, Inc. Matching engine with signature generation
US8189931B2 (en) * 2008-01-04 2012-05-29 International Business Machines Corporation Method and apparatus for matching of bracketed patterns in test strings
US8370274B2 (en) * 2009-05-29 2013-02-05 Intel Corporation Apparatuses and methods for deterministic pattern matching

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060161984A1 (en) * 2005-01-14 2006-07-20 Mircosoft Corporation Method and system for virus detection using pattern matching techniques
US20080270399A1 (en) * 2007-04-29 2008-10-30 Bo Feng Method and system for parallel flow-awared pattern matching

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ZHANG BAOJUN ET AL.: "High concurrence Wu-Manber Multiple Pattern Matching Algorithm.", PROCEEDINGS OF THE 2009 INTERNATIONAL SYMPOSIUM ON INFORMATION PROCESSING, 2009, pages 404 - 409 *

Also Published As

Publication number Publication date
KR101075439B1 (ko) 2011-10-24
US20130173647A1 (en) 2013-07-04

Similar Documents

Publication Publication Date Title
US20100161911A1 (en) Method and apparatus for mpi program optimization
US9268623B2 (en) Analyzing update conditions for shared variable directory information in a parallel computer
US9513910B2 (en) Requesting shared variable directory (SVD) information from a plurality of threads in a parallel computer
US9256458B2 (en) Conditionally updating shared variable directory (SVD) information in a parallel computer
Lee et al. A hybrid CPU/GPU pattern-matching algorithm for deep packet inspection
Tang et al. A data skew oriented reduce placement algorithm based on sampling
US9251078B2 (en) Acquiring remote shared variable directory information in a parallel computer
US9367364B2 (en) Broadcasting shared variable directory (SVD) information in a parallel computer
WO2012030027A1 (ko) 멀티 코어 프로세서를 기반으로 하는 문자열 매칭 장치 및 그것의 문자열 매칭 방법
WO2016117739A1 (ko) 인-메모리 데이터베이스 기반의 데이터 관리 시스템 및 그 방법
Crocetti et al. Bandwidth advertising for MAN/ATM connectionless internetting
Tran et al. Memory efficient parallelization for Aho-Corasick algorithm on a GPU
Jeong et al. REACT: Scalable and high-performance regular expression pattern matching accelerator for in-storage processing
Tran et al. Performance optimization of Aho-Corasick algorithm on a GPU
Nishimura et al. Accelerating the Smith-waterman algorithm using bitwise parallel bulk computation technique on GPU
US10284501B2 (en) Technologies for multi-core wireless network data transmission
Saxena et al. Comparison of MPI and Spark for Data Science Applications
Georganas et al. Merbench: Pgas benchmarks for high performance genome assembly
CN106302259B (zh) 片上网络中处理报文的方法和路由器
Kumar et al. Scalable MPI-3.0 RMA on the Blue Gene/Q supercomputer
Nethravathi et al. Improved Parallel Scanner for the Concurrent Execution of Lexical Analysis Tasks on Multi-Core Systems
Memeti et al. Combinatorial optimization of DNA sequence analysis on heterogeneous systems
CN106227852A (zh) 地震勘探成果数据文件的识别方法和装置
Kutlu et al. Cluster-based SNP calling on large-scale genome sequencing data
Sebastião et al. Implementation and performance analysis of efficient index structures for DNA search algorithms in parallel platforms

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10856773

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13819767

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 10856773

Country of ref document: EP

Kind code of ref document: A1