KR102017135B1 - Apparatus and method for hashing processing using multi core cache - Google Patents

Apparatus and method for hashing processing using multi core cache Download PDF

Info

Publication number
KR102017135B1
KR102017135B1 KR1020170155516A KR20170155516A KR102017135B1 KR 102017135 B1 KR102017135 B1 KR 102017135B1 KR 1020170155516 A KR1020170155516 A KR 1020170155516A KR 20170155516 A KR20170155516 A KR 20170155516A KR 102017135 B1 KR102017135 B1 KR 102017135B1
Authority
KR
South Korea
Prior art keywords
entry
data
search
calculated
hashing
Prior art date
Application number
KR1020170155516A
Other languages
Korean (ko)
Other versions
KR20190057977A (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 KR1020170155516A priority Critical patent/KR102017135B1/en
Publication of KR20190057977A publication Critical patent/KR20190057977A/en
Application granted granted Critical
Publication of KR102017135B1 publication Critical patent/KR102017135B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 멀티코어 캐시를 이용한 해싱 처리 장치 및 그 방법에 관한 것으로, 데이터를 삽입(Insert)하기 위해 해싱 함수를 이용하여 삽입 엔트리를 산출하는 삽입 엔트리 산출부, 캐시라인 사이즈에 맞춰 산출된 삽입 엔트리를 검색하여 비어있는 엔트리를 산출하고, 산출된 엔트리에 상기 데이터를 삽입하는 삽입 엔트리 연산부, 데이터를 검색(Lookup)하기 위해 해싱 함수를 이용하여 검색 엔트리를 산출하는 검색 엔트리 산출부 및 캐시라인 사이즈에 맞춰 산출된 검색 엔트리를 검색하여 해당 데이터가 존재하는 엔트리를 산출하고, 산출된 엔트리로부터 상기 데이터를 회수하는 검색 엔트리 연산부를 포함하되, 상기 해싱 함수는 제1 테이블 및 제2 테이블을 사용하는 제1 해싱 함수 또는 제2 해싱 함수 중 적어도 어느 하나를 이용하는 것을 특징으로 한다.The present invention relates to a hashing processing apparatus and a method using a multi-core cache, an insertion entry calculation unit for calculating an insertion entry using a hashing function to insert data, the insertion entry calculated according to the cache line size A search entry calculation unit for calculating a search entry using a hashing function to search for data, and calculating an empty entry by inserting the data into the calculated entry. A search entry operation unit for searching for a search entry calculated according to the calculation and calculating an entry in which corresponding data exists, and recovering the data from the calculated entry, wherein the hashing function includes a first table using a first table and a second table; At least one of a hashing function and a second hashing function .

Description

멀티코어 캐시를 이용한 해싱 처리 장치 및 그 방법{APPARATUS AND METHOD FOR HASHING PROCESSING USING MULTI CORE CACHE}Hashing processing apparatus using multi-core cache and its method {APPARATUS AND METHOD FOR HASHING PROCESSING USING MULTI CORE CACHE}

본 발명은 멀티코어 캐시를 이용한 해싱 처리 장치 및 그 방법에 관한 것으로, 보다 자세하게는 멀티코어 CPU 상에서 데이터의 고속 저장 및 검색 기능을 향상시키는 멀티코어 캐시를 이용한 해싱 처리 장치 및 그 방법에 관한 것이다.The present invention relates to a hashing processing apparatus and method using a multicore cache, and more particularly to a hashing processing apparatus and a method using a multicore cache for improving the fast storage and retrieval of data on a multicore CPU.

해싱은 가장 빠른 데이터구조 중 하나이며, 데이터의 삽입 및 검색시 데이터 처리가 한번에 가능하다는 장점을 가지고 있다. 따라서, 해싱은 데이터베이스, 바이오인포메틱스, 암호학, 네트워크, 분산컴퓨팅, 빅 데이터 등 많은 분야에서 사용되고 있다.Hashing is one of the fastest data structures and has the advantage that data can be processed at the same time when inserting and retrieving data. Hashing is therefore used in many fields, including databases, bioinformatics, cryptography, networks, distributed computing, and big data.

이러한, 해싱은 여러가지 종류가 있으나 가장 일반적인 방법으로는 데이터를 순차적 구조로 삽입 및 검색하는 선형 해싱방법과 데이터를 체인방식으로 삽입 및 검새하는 체인 해싱방법이 있다.There are various types of hashing, but the most common methods include a linear hashing method for inserting and retrieving data in a sequential structure and a chain hashing method for inserting and checking data in a chain manner.

선형 해싱방법은 테이블의 부하율 즉, 채우기 비율 데이터가 전체의 70% 이상 채워졌을 때 긴선형 검색 시 성능이 급격하게 느려지는 단점이 있으며, 체인 해싱방법은 채우기 비율이 높아져도 성능이 선형 해싱방법 보다 저하되지는 않지만 동적 메모리 할당으로 캐시라인을 극대화할 수 없다는 문제점이 있다.The linear hashing method has a disadvantage in that the performance of the long linear search is drastically slowed when the load factor of the table, that is, the fill ratio data is over 70% of the total. Although not degraded, there is a problem that cache lines cannot be maximized by dynamic memory allocation.

이와 관련하여, 한국공개특허 제2011-0077934호는 "해싱 기반의 데이터 관리 방법 및 장치"에 관하여 개시하고 있다.In this regard, Korean Patent Laid-Open No. 2011-0077934 discloses a "hashing-based data management method and apparatus".

본 발명은 상기와 같은 문제점을 해결하기 위해 발명된 것으로서, 기존의 쿠쿠 해싱에서 사용되는 두 개의 해시함수 및 테이블을 이용하되, 캐시라인만큼 삽입 또는 검색 연산을 수행하여 캐시를 극대화하여 사용할 수 있는 멀티코어 캐시를 이용한 해싱 처리 장치 및 그 방법을 제공하는데 그 목적이 있다.The present invention has been invented to solve the above problems, using two hash functions and tables used in the existing Cuckoo hashing, but can be used to maximize the cache by performing insert or search operations as much as the cache line It is an object of the present invention to provide a hashing processing apparatus using the core cache and a method thereof.

또한, 본 발명은 기존의 체인 해싱의 알고리즘을 토대로 하되, 캐시라인만큼 삽입 또는 검색 연산을 수행하여 캐시를 극대화하여 사용할 수 있는 멀티코어 캐시를 이용한 해싱 처리 장치 및 그 방법을 제공하는데 그 목적이 있다.In addition, an object of the present invention is to provide a hashing processing apparatus and method using a multi-core cache that can be used to maximize the cache by performing the insertion or search operation as much as the cache line, based on the existing chain hashing algorithm. .

상기의 목적을 달성하기 위한 본 발명에 따른 멀티코어 캐시를 이용한 해싱 처리 장치는 데이터를 삽입(Insert)하기 위해 해싱 함수를 이용하여 삽입 엔트리를 산출하는 삽입 엔트리 산출부; 캐시라인 사이즈에 맞춰 산출된 삽입 엔트리를 검색하여 비어있는 엔트리를 산출하고, 산출된 엔트리에 상기 데이터를 삽입하는 삽입 엔트리 연산부; 데이터를 검색(Lookup)하기 위해 해싱 함수를 이용하여 검색 엔트리를 산출하는 검색 엔트리 산출부; 및 캐시라인 사이즈에 맞춰 산출된 검색 엔트리를 검색하여 해당 데이터가 존재하는 엔트리를 산출하고, 산출된 엔트리로부터 상기 데이터를 회수하는 검색 엔트리 연산부;를 포함하되, 상기 해싱 함수는 제1 테이블 및 제2 테이블을 사용하는 제1 해싱 함수 또는 제2 해싱 함수 중 적어도 어느 하나를 이용하는 것을 특징으로 한다.In order to achieve the above object, a hashing processing apparatus using a multi-core cache according to the present invention includes an insert entry calculator for calculating an insert entry using a hashing function to insert data; An insertion entry operation unit which searches for an insertion entry calculated according to a cache line size, calculates an empty entry, and inserts the data into the calculated entry; A search entry calculator configured to calculate a search entry by using a hashing function to look up data; And a search entry operation unit which searches for a search entry calculated according to the cache line size, calculates an entry in which the corresponding data exists, and retrieves the data from the calculated entry. The hashing function includes a first table and a second table. At least one of a first hashing function and a second hashing function using a table is used.

또한, 상기 해싱 함수에서 이용되는 제1 해싱 함수는 쿠쿠 해싱이고, 제2 해싱 함수는 체인 해싱인 것을 특징으로 한다.Further, the first hashing function used in the hashing function is Cuckoo hashing, and the second hashing function is chain hashing.

또한, 상기 삽입 엔트리 산출부는, 데이터를 삽입하기 위해 제1 테이블의 제1 해싱 함수를 이용하여 삽입 엔트리를 산출하는 제1 삽입 해싱부; 및 데이터를 삽입하기 위해 제2 해싱 함수를 이용하여 삽입 엔트리를 산출하는 제2 삽입 해싱부;를 포함하는 것을 특징으로 한다.The insertion entry calculator may further include: a first insertion hashing unit configured to calculate an insertion entry using a first hashing function of the first table to insert data; And a second insertion hashing unit configured to calculate an insertion entry using a second hashing function to insert data.

또한, 상기 삽입 엔트리 연산부는, 상기 제1 삽입 해싱부에 의해, 제1 테이블의 제1 해싱 함수를 이용하여 산출된 삽입 엔트리에 상기 데이터를 삽입하는 제1 엔트리 삽입부; 및 상기 제2 삽입 해싱부에 의해, 제2 해싱 함수를 이용하여 산출된 삽입 엔트리에 상기 데이터를 삽입하는 제2 엔트리 삽입부;를 포함하는 것을 특징으로 한다.The insertion entry calculator may further include: a first entry insertion unit configured to insert the data into an insertion entry calculated by the first insertion hashing unit using a first hashing function of a first table; And a second entry inserting unit inserting the data into the insertion entry calculated by the second insertion hashing unit using a second hashing function.

또한, 상기 제1 엔트리 삽입부는, 제1 테이블의 제1 해싱 함수를 이용하여 산출된 제1 테이블에 따른 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 삽입 엔트리가 비어있는지의 여부를 판단하는 제1 삽입 판단부; 판단 결과, 제1 테이블에 따른 삽입 엔트리가 비어있지 않은 경우 제2 테이블의 제1 해싱 함수를 이용하여 추가 삽입 엔트리를 산출하는 추가 삽입 엔트리 산출부; 제2 테이블의 제1 해싱 함수를 이용하여 산출된 제2 테이블에 따른 추가 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 추가 삽입 엔트리가 비어있는지의 여부를 판단하는 제2 삽입 판단부; 및 판단 결과, 제2 테이블에 따른 추가 삽입 엔트리가 비어있지 않은 경우 제2 테이블을 순차 검색하여 새로운 삽입 엔트리를 산출하는 삽입 엔트리 검색부;를 포함하는 것을 특징으로 한다.The first entry inserter may be configured to search for an insert entry according to the first table calculated using a first hashing function of the first table according to a cache line size, and to determine whether the corresponding insert entry is empty. 1 insertion determination unit; An additional insertion entry calculator configured to calculate an additional insertion entry using the first hashing function of the second table when the insertion entry according to the first table is not empty; A second insertion determination unit searching for an additional insertion entry according to the second table calculated using the first hashing function of the second table according to the cache line size, and determining whether the additional insertion entry is empty; And an insertion entry searching unit configured to sequentially search the second table to calculate a new insertion entry when the additional insertion entry according to the second table is not empty, as a result of the determination.

또한, 판단 결과, 제1 테이블에 따른 삽입 엔트리가 비어있는 경우 해당 삽입 엔트리에 상기 데이터를 삽입하고, 제2 테이블에 따른 추가 삽입 엔트리가 비어있는 경우 해당 추가 삽입 엔트리에 상기 데이터를 삽입하고, 제2 테이블의 순차 검색 후 검색된 새로운 삽입 엔트리에 상기 데이터를 삽입하는 제1 데이터 삽입부를 포함하는 것을 특징으로 한다.If the insertion result according to the first table is empty as a result of the determination, the data is inserted into the corresponding insertion entry. If the additional insertion entry according to the second table is empty, the data is inserted into the corresponding additional insertion entry. And a first data insertion unit for inserting the data into a new insertion entry searched after the sequential search of two tables.

또한, 상기 제2 엔트리 삽입부는, 제2 해싱 함수를 이용하여 산출된 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 삽입 엔트리가 비어있는지의 여부를 판단하는 제3 삽입 판단부; 판단 결과, 산출된 삽입 엔트리가 비어있지 않은 경우 연결 노드의 존재 여부를 판단하는 제1 노드 존재 판단부; 및 판단 결과, 연결 노드가 존재하는 경우 산출된 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 삽입 엔트리가 비어있는지의 여부를 판단하는 제4 삽입 판단부;를 포함하는 것을 특징으로 한다.The second entry insertion unit may further include: a third insertion determination unit which searches for an insertion entry calculated using a second hashing function according to a cache line size, and determines whether the corresponding insertion entry is empty; A first node presence determination unit that determines whether a connection node exists when the calculated insertion entry is not empty; And a fourth insertion determination unit searching for the calculated insertion entry according to the cache line size when the connection node exists, and determining whether the corresponding insertion entry is empty.

또한, 판단 결과, 산출된 삽입 엔트리가 비어있는 경우 해당 삽입 엔트리에 상기 데이터를 삽입하고, 연결 노드가 존재하고 산출된 삽입 엔트리가 비어있는 경우 해당 삽입 엔트리에 상기 데이터를 삽입하고, 연결 노드가 존재하지 않는 경우 새로운 노드를 생성한 후 생성된 노드에 상기 데이터를 삽입하는 제2 데이터 삽입부를 포함하는 것을 특징으로 한다.Also, as a result of the determination, if the calculated insertion entry is empty, the data is inserted into the corresponding insertion entry, and if the calculated insertion entry is empty, the data is inserted into the corresponding insertion entry, and the connection node exists. If not, characterized in that it comprises a second data insertion unit for inserting the data into the generated node after creating a new node.

또한, 상기 검색 엔트리 산출부는, 상기 데이터를 검색하기 위해 제1 테이블의 제1 해싱 함수를 이용하여 검색 엔트리를 산출하는 제1 검색 해싱부; 및 상기 데이터를 검색하기 위해 제2 해싱 함수를 이용하여 검색 엔트리를 산출하는 제2 검색 해싱부;를 포함하는 것을 특징으로 한다.The search entry calculator may further include: a first search hashing unit configured to calculate a search entry by using a first hashing function of a first table to search the data; And a second search hashing unit configured to calculate a search entry by using a second hashing function to search the data.

또한, 상기 검색 엔트리 연산부는, 상기 제1 검색 해싱부에 의해, 제1 테이블의 제1 해싱 함수를 이용하여 산출된 검색 엔트리로부터 상기 데이터를 회수하는 제1 엔트리 검색부; 및 상기 제2 검색 해싱부에 의해, 제2 해싱 함수를 이용하여 산출된 검색 엔트리로부터 상기 데이터를 회수하는 제2 엔트리 검색부;를 포함하는 것을 특징으로 한다.The search entry operation unit may further include: a first entry search unit that recovers the data from a search entry calculated by the first search hashing unit using a first hashing function of a first table; And a second entry search unit for recovering the data from the search entry calculated using the second hashing function by the second search hashing unit.

또한, 상기 제1 엔트리 검색부는, 제1 테이블의 제1 해싱 함수를 이용하여 산출된 제1 테이블에 따른 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 검색 엔트리에 상기 데이터가 존재하는지의 여부를 판단하는 제1 검색 판단부; 판단 결과, 제1 테이블에 따른 검색 엔트리에 상기 데이터가 존재하지 않는 경우 제2 테이블의 제1 해싱 함수를 이용하여 추가 검색 엔트리를 산출하는 추가 검색 엔트리 산출부; 제2 테이블의 제1 해싱 함수를 이용하여 산출된 제2 테이블에 따른 추가 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 추가 검색 엔트리에 상기 데이터가 존재하는지의 여부를 판단하는 제2 검색 판단부; 및 판단 결과, 제2 테이블에 따른 추가 검색 엔트리가 비어있지 않은 경우 제2 테이블을 순차 검색하여 새로운 검색 엔트리를 산출하는 검색 엔트리 산출부;를 포함하는 것을 특징으로 한다.The first entry search unit may search for a search entry according to the first table calculated using the first hashing function of the first table according to the cache line size, and determine whether the data exists in the corresponding search entry. A first search determination unit to determine; An additional search entry calculator configured to calculate an additional search entry by using a first hashing function of a second table when the data does not exist in the search entry according to the first table; A second search determination unit that searches for additional search entries according to the second table calculated using the first hashing function of the second table according to the cache line size, and determines whether the data exists in the corresponding additional search entry; ; And a search entry calculator configured to sequentially search the second table and calculate a new search entry when the additional search entry according to the second table is not empty.

또한, 판단 결과, 제1 테이블에 따른 검색 엔트리에 상기 데이터가 존재하는 경우 해당 데이터를 회수하고, 제2 테이블에 따른 추가 검색 엔트리에 상기 데이터가 존재하는 경우 해당 데이터를 회수하고, 제2 테이블의 순차 검색 후 검색된 새로운 검색 엔트리로부터 해당 데이터를 회수하는 제1 데이터 회수부를 포함하는 것을 특징으로 한다.Also, as a result of the determination, if the data exists in the search entry according to the first table, the corresponding data is recovered, and when the data exists in the additional search entry according to the second table, the corresponding data is recovered, and And a first data recovery unit for recovering the corresponding data from the new search entry searched after the sequential search.

또한, 상기 제2 엔트리 검색부는, 제2 해싱 함수를 이용하여 산출된 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 검색 엔트리에 상기 데이터가 존재하는지의 여부를 판단하는 제3 검색 판단부; 판단 결과, 산출된 검색 엔트리에 상기 데이터가 존재하지 않는 경우 연결 노드의 존재 여부를 판단하는 제2 노드 존재 판단부; 및 판단 결과, 연결 노드가 존재하는 경우 산출된 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 검색 엔트리에 상기 데이터가 존재하는지의 여부를 판단하는 제4 검색 판단부;를 포함하는 것을 특징으로 한다.The second entry search unit may further include: a third search determination unit that searches a search entry calculated using a second hashing function according to a cache line size, and determines whether the data exists in the search entry; A second node presence determining unit determining whether a connection node exists when the data does not exist in the calculated search entry; And a fourth search determiner configured to search for the calculated search entry according to the cache line size when the connection node exists, and determine whether the data exists in the corresponding search entry. .

또한, 판단 결과, 산출된 검색 엔트리에 상기 데이터가 존재하는 경우 해당 데이터를 회수하고, 연결 노드가 존재하지 않는 경우와 연결 노드가 존재하는 경우에 산출된 검색 엔트리에 상기 데이터가 존재하지 않는 경우 상기 데이터는 존재하지 않는 것으로 판단하고, 연결 노드가 존재하는 경우에 산출된 검색 엔트리에 상기 엔트리가 존재하는 경우 해당 데이터를 회수하는 제2 데이터 회수부를 포함하는 것을 특징으로 한다.Further, as a result of the determination, if the data exists in the calculated search entry, the corresponding data is recovered, and if the data does not exist in the calculated search entry when the connection node does not exist and the connection node exists. It is determined that the data does not exist, and includes a second data recovery unit for recovering the data when the entry exists in the search entry calculated when the connection node exists.

상기의 목적을 달성하기 위한 본 발명에 따른 멀티코어 캐시를 이용한 해싱 처리 방법은 삽입 엔트리 산출부에 의해, 데이터를 삽입(Insert)하기 위해 해싱 함수를 이용하여 삽입 엔트리를 산출하는 단계; 삽입 엔트리 연산부에 의해, 캐시라인 사이즈에 맞춰 산출된 삽입 엔트리를 검색하여 비어있는 엔트리를 산출하고, 산출된 엔트리에 상기 데이터를 삽입하는 단계; 검색 엔트리 산출부에 의해, 데이터를 검색(Lookup)하기 위해 해싱 함수를 이용하여 검색 엔트리를 산출하는 단계; 및검색 엔트리 연산부에 의해, 캐시라인 사이즈에 맞춰 산출된 검색 엔트리를 검색하여 해당 데이터가 존재하는 엔트리를 산출하고, 산출된 엔트리로부터 상기 데이터를 회수하는 단계;를 포함하되, 상기 해싱 함수는 제1 테이블 및 제2 테이블을 사용하는 제1 해싱 함수 또는 제2 해싱 함수 중 적어도 어느 하나를 이용하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a hashing processing method using a multicore cache, the method comprising: calculating, by an insert entry calculating unit, an insert entry by using a hashing function to insert data; Searching an insertion entry calculated according to the cache line size by the insertion entry calculating unit to calculate an empty entry, and inserting the data into the calculated entry; Calculating, by the search entry calculator, a search entry using a hashing function to look up data; And searching, by a search entry calculating unit, a search entry calculated according to the cache line size to calculate an entry in which the corresponding data exists, and recovering the data from the calculated entry. At least one of the first hashing function and the second hashing function using the table and the second table is used.

또한, 캐시라인 사이즈에 맞춰 산출된 삽입 엔트리를 검색하여 비어있는 엔트리를 산출하고, 산출된 엔트리에 상기 데이터를 삽입하는 단계는, 제1 테이블의 제1 해싱 함수를 이용하여 산출된 삽입 엔트리에 상기 데이터를 삽입하는 단계를 포함하며, 제1 테이블의 제1 해싱 함수를 이용하여 산출된 삽입 엔트리에 상기 데이터를 삽입하는 단계는, 제1 테이블의 제1 해싱 함수를 이용하여 산출된 제1 테이블에 따른 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 삽입 엔트리가 비어있는지의 여부를 판단하는 단계; 판단 결과, 제1 테이블에 따른 삽입 엔트리가 비어있지 않은 경우 제2 테이블의 제1 해싱 함수를 이용하여 추가 삽입 엔트리를 산출하는 단계; 제2 테이블의 제1 해싱 함수를 이용하여 산출된 제2 테이블에 따른 추가 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 추가 삽입 엔트리가 비어있는지의 여부를 판단하는 단계: 및 판단 결과, 제2 테이블에 따른 추가 삽입 엔트리가 비어있지 않은 경우 제2 테이블을 순차 검색하여 새로운 삽입 엔트리를 산출하는 단계;를 포함하는 것을 특징으로 한다.In addition, searching for an insertion entry calculated according to the cache line size to calculate an empty entry, and inserting the data into the calculated entry may include inserting the data into the insertion entry calculated using the first hashing function of the first table. And inserting data, wherein inserting the data into an insert entry calculated using the first hashing function of the first table comprises: inserting data into the first table calculated using the first hashing function of the first table. Searching for the insertion entry according to the cache line size and determining whether the corresponding insertion entry is empty; If the insertion result according to the first table is not empty, calculating an additional insertion entry using a first hashing function of the second table; Retrieving the additional insertion entry according to the second table calculated using the first hashing function of the second table according to the cache line size, and determining whether the additional insertion entry is empty: and as a result of the determination, the second And if the additional insert entry according to the table is not empty, calculating a new insert entry by sequentially searching the second table.

또한, 캐시라인 사이즈에 맞춰 산출된 삽입 엔트리를 검색하여 비어있는 엔트리를 산출하고, 산출된 엔트리에 상기 데이터를 삽입하는 단계는, 제2 해싱 함수를 이용하여 산출된 삽입 엔트리에 상기 데이터를 삽입하는 단계를 포함하며, 제1 테이블의 제1 해싱 함수를 이용하여 산출된 삽입 엔트리에 상기 데이터를 삽입하는 단계는, 제2 해싱 함수를 이용하여 산출된 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 삽입 엔트리가 비어있는지의 여부를 판단하는 단계; 판단 결과, 산출된 삽입 엔트리가 비어있지 않은 경우 연결 노드의 존재 여부를 판단하는 단계; 및 판단 결과, 연결 노드가 존재하는 경우 산출된 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 삽입 엔트리가 비어있는지의 여부를 판단하는 단계:를 포함하는 것을 특징으로 한다.In addition, searching for an insertion entry calculated according to the cache line size and calculating an empty entry, and inserting the data into the calculated entry may include inserting the data into the insertion entry calculated using a second hashing function. And inserting the data into the insert entry calculated using the first hashing function of the first table, searching for the insert entry calculated using the second hashing function according to the cache line size, and Determining whether the insert entry is empty; Determining whether a connection node exists when the calculated insertion entry is not empty; And if the connection node exists, searching for the calculated insertion entry according to the cache line size, and determining whether the corresponding insertion entry is empty.

또한, 캐시라인 사이즈에 맞춰 산출된 검색 엔트리를 검색하여 해당 데이터가 존재하는 엔트리를 산출하고, 산출된 엔트리로부터 상기 데이터를 회수하는 단계는, 제1 테이블의 제1 해싱 함수를 이용하여 산출된 검색 엔트리로부터 상기 데이터를 회수하는 단계를 포함하며, 상기 제1 검색 해싱부에 의해, 제1 테이블의 제1 해싱 함수를 이용하여 산출된 검색 엔트리로부터 상기 데이터를 회수하는 단계는, 제1 테이블의 제1 해싱 함수를 이용하여 산출된 제1 테이블에 따른 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 검색 엔트리에 상기 데이터가 존재하는지의 여부를 판단하는 단계; 판단 결과, 제1 테이블에 따른 검색 엔트리에 상기 데이터가 존재하지 않는 경우 제2 테이블의 제1 해싱 함수를 이용하여 추가 검색 엔트리를 산출하는 단계; 제2 테이블의 제1 해싱 함수를 이용하여 산출된 제2 테이블에 따른 추가 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 추가 검색 엔트리에 상기 데이터가 존재하는지의 여부를 판단하는 단계; 및 판단 결과, 제2 테이블에 따른 추가 검색 엔트리가 비어있지 않은 경우 제2 테이블을 순차 검색하여 새로운 검색 엔트리를 산출하는 단계;를 포함하는 것을 특징으로 한다.In addition, searching for a search entry calculated according to the cache line size to calculate an entry in which the corresponding data exists, and recovering the data from the calculated entry may include a search calculated using a first hashing function of the first table. Retrieving the data from an entry, wherein retrieving the data from the search entry calculated using the first hashing function of the first table by the first search hashing unit includes: Searching for a search entry according to the first table calculated using a hashing function according to a cache line size, and determining whether the data exists in the corresponding search entry; Calculating an additional search entry using a first hashing function of a second table when the data does not exist in the search entry according to the first table; Searching for the additional search entry according to the second table calculated using the first hashing function of the second table according to the cache line size, and determining whether the data exists in the corresponding additional search entry; And if the additional search entry according to the second table is not empty, calculating a new search entry by sequentially searching the second table.

또한, 캐시라인 사이즈에 맞춰 산출된 검색 엔트리를 검색하여 해당 데이터가 존재하는 엔트리를 산출하고, 산출된 엔트리로부터 상기 데이터를 회수하는 단계는, 제2 해싱 함수를 이용하여 산출된 검색 엔트리로부터 상기 데이터를 회수하는 단계를 포함하며, 제2 해싱 함수를 이용하여 산출된 검색 엔트리로부터 상기 데이터를 회수하는 단계는, 제2 해싱 함수를 이용하여 산출된 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 검색 엔트리에 상기 데이터가 존재하는지의 여부를 판단하는 단계; 판단 결과, 산출된 검색 엔트리에 상기 데이터가 존재하지 않는 경우 연결 노드의 존재 여부를 판단하는 단계; 및 판단 결과, 연결 노드가 존재하는 경우 산출된 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 검색 엔트리에 상기 데이터가 존재하는지의 여부를 판단하는 단계;를 포함하는 것을 특징으로 한다.In addition, searching for the search entry calculated according to the cache line size to calculate an entry in which the corresponding data exists, and recovering the data from the calculated entry, the data from the search entry calculated using a second hashing function And recovering the data from the search entry calculated using the second hashing function, searching for the search entry calculated using the second hashing function according to the cache line size, and searching for the corresponding search. Determining whether the data exists in an entry; Determining whether there is a connection node when the data does not exist in the calculated search entry; And searching the search entry calculated according to the cache line size when the connection node exists, and determining whether the data exists in the corresponding search entry.

상기와 같은 구성을 갖는 본 발명에 따른 멀티코어 캐시를 이용한 해싱 처리 장치 및 그 방법은 기존의 쿠쿠 해싱에서 사용되는 두 개의 해시함수 및 테이블을 이용하되, 캐시라인만큼 삽입 또는 검색 연산을 수행함으로써, 데이터 크기가 작고, 기존의 쿠쿠 해싱의 밀어내기 연산(Kicking-out process)이 존재하지 않으며 삽입 또는 검색 연산 시 락을 사용하지 않는 락 프리 연산을 사용하여 연산 오버헤드가 감소하며, 채우기 비율이 90% 이상이어도 삽입 및 검색 연산 속도가 빨라 테이블 리사이즈가 불필요하다는 효과가 있다.Hashing processing apparatus and method using a multi-core cache according to the present invention having the configuration as described above by using two hash functions and tables used in the existing Cuckoo hashing, by performing an insert or search operation as much as the cache line, The data size is small, there is no existing kicking-out process of Cuckoo hashing, and the operation overhead is reduced by using lock-free operations that do not use locks for insert or search operations, and the fill ratio is 90 Even if it is more than%, the insert and search operations are fast, which eliminates the need for table resize.

또한, 본 발명은 기존의 체인 해싱의 알고리즘을 토대로 하되, 캐시라인만큼 삽입 또는 검색 연산을 수행함으로써, 삽입 또는 검색 연산 시 락을 사용하지 않는 락 프리 연산을 사용하여 연산 오버헤드가 감소하며, 채우기 비율이 90% 이상이어도 삽입 및 검색 연산 속도가 빨라 테이블 리사이즈가 불필요하다는 효과가 있다.In addition, the present invention is based on the existing algorithm of chain hashing, by performing the insert or search operation as much as the cache line, the operation overhead is reduced by using a lock-free operation that does not use the lock during the insert or search operation, fill Even if the ratio is over 90%, the insert and search operations are fast, which eliminates the need for table resize.

이를 통해, 본 발명은 유도탄이나 작은 사이즈의 임베디드 시스템에서 적은 메모리 사용으로 최대한 효율적인 구조로 하드웨어 성능을 극대화시킬 수 있다.Through this, the present invention can maximize hardware performance with the most efficient structure with less memory in missile bombs or small size embedded system.

도 1은 본 발명에 따른 멀티코어 캐시를 이용한 해싱 처리 장치의 구조를 설명하기 위한 도면이다.
그리고 도 2는 본 발명에 적용되는 쿠쿠 패싱의 캐시라인 사이즈를 예시한 도면이고, 도 3은 본 발명에 적용되는 체인 해싱의 캐시라인 사이즈를 예시한 도면이다.
도 4는 본 발명에 따라 멀티코어 캐시를 이용한 해싱 처리 장치에서 쿠쿠 해싱을 기반으로 삽입 연산을 수행하기 위해 채용되는 구성을 설명하기 위한 도면이다.
도 5는 도 4를 자세하게 설명하기 위한 도면이다.
도 6은 본 발명에 따라 멀티코어 캐시를 이용한 해싱 처리 장치에서 쿠쿠 해싱을 기반으로 검색 연산을 수행하기 위해 채용되는 구성을 설명하기 위한 도면이다.
도 7은 본 발명에 따라 멀티코어 캐시를 이용한 해싱 처리 장치에서 체인 해싱을 기반으로 삽입 연산을 수행하기 위해 채용되는 구성을 설명하기 위한 도면이다.
도 8은 본 발명에 따라 멀티코어 캐시를 이용한 해싱 처리 장치에서 체인 해싱을 기반으로 검색 연산을 수행하기 위해 채용되는 구성을 설명하기 위한 도면이다.
도 9는 본 발명에 따른 쿠쿠 해싱을 기반으로 하는 멀티코어 캐시를 이용한 해싱 처리 방법에서 삽입 연산을 수행하는 과정을 설명하기 위한 순서도이다.
도 10은 본 발명에 따른 쿠쿠 해싱을 기반으로 하는 멀티코어 캐시를 이용한 해싱 처리 방법에서 검색 연산을 수행하는 과정을 설명하기 위한 순서도이다.
도 11은 본 발명에 따른 체인 해싱을 기반으로 하는 멀티코어 캐시를 이용한 해싱 처리 방법에서 삽입 연산을 수행하는 과정을 설명하기 위한 순서도이다.
도 12는 본 발명에 따른 체인 해싱을 기반으로 하는 멀티코어 캐시를 이용한 해싱 처리 방법에서 검색 연산을 수행하는 과정을 설명하기 위한 순서도이다.
도 13 내지 도 15는 본 발명에 따른 멀티코어 캐시를 이용한 해싱 처리 장치 및 방법의 성능시험결과를 설명하기 위한 도면이다.
1 is a view for explaining the structure of a hashing apparatus using a multi-core cache according to the present invention.
2 is a diagram illustrating a cache line size of Cuckoo Passing applied to the present invention, and FIG. 3 is a diagram illustrating a cache line size of chain hashing applied to the present invention.
4 is a view for explaining a configuration employed to perform an insert operation based on Cuckoo hashing in a hashing processing apparatus using a multicore cache according to the present invention.
FIG. 5 is a diagram for explaining FIG. 4 in detail.
FIG. 6 is a diagram for describing a configuration employed to perform a search operation based on Cuckoo hashing in a hashing processing apparatus using a multicore cache according to the present invention.
FIG. 7 is a diagram for describing a configuration employed to perform an insert operation based on chain hashing in a hashing processing apparatus using a multicore cache according to the present invention.
FIG. 8 is a diagram illustrating a configuration employed to perform a search operation based on chain hashing in a hashing processing apparatus using a multicore cache according to the present invention.
9 is a flowchart illustrating a process of performing an insert operation in a hashing processing method using a multicore cache based on Cuckoo hashing according to the present invention.
10 is a flowchart illustrating a process of performing a search operation in a hashing processing method using a multicore cache based on Cuckoo hashing according to the present invention.
11 is a flowchart illustrating a process of performing an insert operation in a hashing processing method using a multicore cache based on chain hashing according to the present invention.
12 is a flowchart illustrating a process of performing a search operation in a hashing processing method using a multicore cache based on chain hashing according to the present invention.
13 to 15 are diagrams for explaining the performance test results of the hashing processing apparatus and method using a multi-core cache according to the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.As the present invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description.

그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. In describing the drawings, similar reference numerals are used for similar elements.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, with reference to the accompanying drawings, it will be described in detail a preferred embodiment of the present invention. Hereinafter, the same reference numerals are used for the same components in the drawings, and duplicate descriptions of the same components are omitted.

도 1은 본 발명에 따른 멀티코어 캐시를 이용한 해싱 처리 장치의 구조를 설명하기 위한 도면이다.1 is a view for explaining the structure of a hashing apparatus using a multi-core cache according to the present invention.

도 1을 참조하여 설명하면, 본 발명에 따른 멀티코어 캐시를 이용한 해싱 처리 장치(100)는 삽입 엔트리 산출부(200), 삽입 엔트리 연산부(300), 검색 엔트리 산출부(400) 및 검색 엔트리 연산부(500)를 포함한다.Referring to FIG. 1, the hashing processing apparatus 100 using the multicore cache according to the present invention includes an insert entry calculator 200, an insert entry calculator 300, a search entry calculator 400, and a search entry calculator. 500.

삽입 엔트리 산출부(200)는 데이터를 삽입(Insert)하기 위해 해싱 함수를 이용하여 삽입 엔트리를 산출한다.The insert entry calculator 200 calculates an insert entry by using a hashing function to insert data.

이를 위해, 삽입 엔트리 산출부(200)는 제1 삽입 해싱부(210) 및 제2 삽입 해싱부(220)를 포함한다.To this end, the insertion entry calculator 200 includes a first insertion hashing unit 210 and a second insertion hashing unit 220.

제1 삽입 해싱부(210)는 데이터를 삽입하기 위해 제1 테이블의 제1 해싱 함수를 이용하여 삽입 엔트리를 산출한다.The first insertion hashing unit 210 calculates an insertion entry by using a first hashing function of the first table to insert data.

제2 삽입 해싱부(220)는 데이터를 삽입하기 위해 제2 해싱 함수를 이용하여 삽입 엔트리를 산출한다.The second insertion hashing unit 220 calculates an insertion entry using a second hashing function to insert data.

삽입 엔트리 연산부(300)는 캐시라인 사이즈에 맞춰 산출된 삽입 엔트리를 검색하여 비어있는 엔트리를 산출하고, 산출된 엔트리에 데이터를 삽입한다.The insertion entry calculator 300 searches for an insertion entry calculated according to the cache line size, calculates an empty entry, and inserts data into the calculated entry.

이를 위해, 삽입 엔트리 연산부(300)는 제1 엔트리 삽입부(310) 및 제2 엔트리 삽입부(320)를 포함한다.To this end, the insert entry operator 300 includes a first entry inserter 310 and a second entry inserter 320.

제1 엔트리 삽입부(310)는 제1 삽입 해싱부(210)에 의해, 제1 테이블의 제1 해싱 함수를 이용하여 산출된 삽입 엔트리에 데이터를 삽입한다.The first entry inserter 310 inserts data into the insertion entry calculated by the first insertion hashing unit 210 using the first hashing function of the first table.

제2 엔트리 삽입부(320)는 제2 삽입 해싱부(220)에 의해, 제2 해싱 함수를 이용하여 산출된 삽입 엔트리에 데이터를 삽입한다.The second entry inserting unit 320 inserts data into the insertion entry calculated by the second insertion hashing unit 220 using the second hashing function.

검색 엔트리 산출부(400)는 데이터를 검색(Lookup)하기 위해 해싱 함수를 이용하여 검색 엔트리를 산출한다.The search entry calculator 400 calculates a search entry by using a hashing function to look up data.

검색 엔트리 산출부(400)는 제1 검색 해싱부(410) 및 제2 검색 해싱부(420)를 포함한다.The search entry calculator 400 includes a first search hashing unit 410 and a second search hashing unit 420.

제1 검색 해싱부(410)는 데이터를 검색하기 위해 제1 테이블의 제1 해싱 함수를 이용하여 검색 엔트리를 산출한다.The first search hashing unit 410 calculates a search entry by using a first hashing function of the first table to search for data.

제2 검색 해싱부(420)는 데이터를 검색하기 위해 제2 해싱 함수를 이용하여 검색 엔트리를 산출한다.The second search hashing unit 420 calculates a search entry by using a second hashing function to search for data.

검색 엔트리 연산부(500)는 캐시라인 사이즈에 맞춰 산출된 검색 엔트리를 검색하여 해당 데이터가 존재하는 엔트리를 산출하고, 산출된 엔트리로부터 데이터를 회수한다.The search entry calculator 500 searches for a search entry calculated according to the cache line size, calculates an entry in which the corresponding data exists, and collects data from the calculated entry.

검색 엔트리 연산부(500)는 제1 엔트리 검색부(510) 및 제2 엔트리 검색부(520)를 포함한다.The search entry calculator 500 includes a first entry searcher 510 and a second entry searcher 520.

제1 엔트리 검색부(510)는 제1 검색 해싱부(410)에 의해, 제1 테이블의 제1 해싱 함수를 이용하여 산출된 검색 엔트리로부터 데이터를 회수한다.The first entry retrieval unit 510 retrieves data from the search entry calculated by the first retrieval hashing unit 410 using the first hashing function of the first table.

제2 엔트리 검색부(520)는 제2 검색 해싱부(420)에 의해, 제2 해싱 함수를 이용하여 산출된 검색 엔트리로부터 데이터를 회수한다.The second entry retrieving unit 520 retrieves data from the search entry calculated by the second retrieval hashing unit 420 using the second hashing function.

이때, 본 발명은 해싱 함수는 제1 테이블 및 제2 테이블을 사용하는 제1 해싱 함수 또는 제2 해싱 함수 중 적어도 어느 하나를 이용하되, 해싱 함수에서 이용되는 제1 해싱 함수는 쿠쿠 해싱이고, 제2 해싱 함수는 체인 해싱이다. 여기서, 본 명세서에서는 설명의 편의에 따라 본 발명에 따른 멀티코어 캐시를 이용한 해싱 처리 장치가 사용자의 선택에 따라 쿠쿠 해싱 및 체인 해싱을 모두 처리할 수 있는 것으로 설명하였으나, 구성의 용이성에 따라 쿠쿠 해싱과 체인 해싱을 각각 다르게 처리할 수도 있는 것으로 한다.In this case, in the present invention, the hashing function uses at least one of the first hashing function and the second hashing function using the first table and the second table, and the first hashing function used in the hashing function is Cuckoo hashing. 2 Hashing function is chain hashing. Herein, for the convenience of description, the hashing processing apparatus using the multi-core cache according to the present invention has been described as being able to process both Cuckoo hashing and chain hashing according to a user's selection. And chain hashing can be handled differently.

그리고 도 2는 본 발명에 적용되는 쿠쿠 패싱의 캐시라인 사이즈를 예시한 도면이고, 도 3은 본 발명에 적용되는 체인 해싱의 캐시라인 사이즈를 예시한 도면이다.2 is a diagram illustrating a cache line size of Cuckoo Passing applied to the present invention, and FIG. 3 is a diagram illustrating a cache line size of chain hashing applied to the present invention.

도 4는 본 발명에 따라 멀티코어 캐시를 이용한 해싱 처리 장치에서 쿠쿠 해싱을 기반으로 삽입 연산을 수행하는 구성을 설명하기 위한 도면이고, 도 5는 도 4를 자세하게 설명하기 위한 도면이다.FIG. 4 is a diagram for describing a configuration of performing an insert operation based on Cuckoo hashing in a hashing processing apparatus using a multicore cache according to the present invention, and FIG. 5 is a diagram for describing FIG. 4 in detail.

도 4를 참조하여 설명하면, 본 발명에 따른 멀티코어 캐시를 이용한 해싱 처리 장치에서 쿠쿠 해싱을 기반으로 삽입 연산을 수행하기 위해서는 삽입 엔트리 산출부의 제1 삽입 해싱부(210) 및 삽입 엔트리 연산부의 제1 엔트리 삽입부(310)를 포함한다.Referring to FIG. 4, in order to perform an insert operation based on Cuckoo hashing in the hashing processing apparatus using the multicore cache according to the present invention, the first insert hashing unit 210 and the insert entry calculating unit of the insert entry calculating unit may be used. And a one-entry insertion unit 310.

제1 삽입 해싱부(210)는 데이터를 삽입하기 위해 제1 테이블의 제1 해싱 함수를 이용하여 삽입 엔트리를 산출한다. 여기서, 제1 해싱 함수는 쿠쿠 해싱이다.The first insertion hashing unit 210 calculates an insertion entry by using a first hashing function of the first table to insert data. Here, the first hashing function is Cuckoo hashing.

제1 엔트리 삽입부(310)는 제1 삽입 해싱부(210)에 의해, 제1 테이블의 제1 해싱 함수를 이용하여 산출된 삽입 엔트리에 데이터를 삽입한다.The first entry inserter 310 inserts data into the insertion entry calculated by the first insertion hashing unit 210 using the first hashing function of the first table.

이를 위해, 제1 엔트리 삽입부(310)는 제1 삽입 판단부(311), 추가 삽입 엔트리 산출부(312), 제2 삽입 판단부(313), 삽입 엔트리 검색부(314) 및 제1 데이터 삽입부(315)를 포함한다.To this end, the first entry insertion unit 310 may include a first insertion determination unit 311, an additional insertion entry calculation unit 312, a second insertion determination unit 313, an insertion entry search unit 314, and first data. Insert portion 315 is included.

제1 삽입 판단부(311)는 제1 테이블의 제1 해싱 함수를 이용하여 산출된 제1 테이블에 따른 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 삽입 엔트리가 비어있는지의 여부를 판단한다.The first insertion determination unit 311 searches for an insertion entry according to the first table calculated using the first hashing function of the first table according to the cache line size, and determines whether the corresponding insertion entry is empty.

추가 삽입 엔트리 산출부(312)는 판단 결과, 제1 테이블에 따른 삽입 엔트리가 비어있지 않은 경우 제2 테이블의 제1 해싱 함수를 이용하여 추가 삽입 엔트리를 산출한다.As a result of the determination, the additional insertion entry calculator 312 calculates the additional insertion entry by using the first hashing function of the second table when the insertion entry according to the first table is not empty.

제2 삽입 판단부(313)는 제2 테이블의 제1 해싱 함수를 이용하여 산출된 제2 테이블에 따른 추가 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 추가 삽입 엔트리가 비어있는지의 여부를 판단한다.The second insertion determination unit 313 searches for additional insertion entries according to the second table calculated using the first hashing function of the second table according to the cache line size, and determines whether the corresponding additional insertion entries are empty. do.

삽입 엔트리 검색부(314)는 판단 결과, 제2 테이블에 따른 추가 삽입 엔트리가 비어있지 않은 경우 제2 테이블을 순차 검색하여 새로운 삽입 엔트리를 산출한다.As a result of the determination, when the additional insertion entry according to the second table is not empty, the insertion entry searching unit 314 sequentially searches the second table to calculate a new insertion entry.

제1 데이터 삽입부(315)는 판단 결과, 제1 테이블에 따른 삽입 엔트리가 비어있는 경우 해당 삽입 엔트리에 데이터를 삽입하고, 제2 테이블에 따른 추가 삽입 엔트리가 비어있는 경우 해당 추가 삽입 엔트리에 데이터를 삽입하고, 제2 테이블의 순차 검색 후 검색된 새로운 삽입 엔트리에 데이터를 삽입한다.As a result of determination, the first data inserting unit 315 inserts data into the corresponding insert entry when the insert entry according to the first table is empty, and inserts data into the corresponding insert entry when the additional insert entry according to the second table is empty. Is inserted and data is inserted into a new insert entry found after the sequential search of the second table.

보다 자세하게, 도 5에 도시된 바와 같이, (a)에서 데이터 n을 삽입하기 위해 제1 테이블(table1)의 해시 함수(쿠쿠 해싱)를 사용하여 엔트리 12를 찾았다. 그러나 엔트리 12에는 이미 데이터가 있으므로 캐시라인 사이즈 만큼(64bytes사이즈) 인 15번까지 빈 엔트리가 있는지 확인한다. 그 다음, 15번이 비어있으므로 데이터 n은 (b)와 같이 15번에 삽입되어 캐시를 극대화하여 사용한다. 그 다음 (c)의 ①에서 데이터 g를 삽입하기 위해 제1 테이블(table1)의 해시 함수를 사용하여 엔트리 50을 찾았다. 그러나 엔트리 50에 이미 데이터가 있으므로 캐시라인 사이즈만큼인 (64bytes사이즈) 53번까지 빈 엔트리가 있는지 확인하고, ②에서 빈 엔트리가 없으므로 table2의 해시함수를 사용하여 Table2의 엔트리 16을 찾았다. ③에서 엔트리 16에 이미 데이터가 있으므로 순차 검색을 통해 ④와 같이 비어있는 엔트리 20에 데이터를 삽입한다. In more detail, as shown in FIG. 5, entry 12 was found using the hash function (cucu hashing) of the first table table1 to insert data n in (a). However, entry 12 already contains data, so check to see if there is an empty entry up to number 15, which is the size of the cache line (64 bytes). Next, since number 15 is empty, data n is inserted at number 15 as shown in (b) to maximize the cache. Next, entry 50 was found using the hash function of the first table table1 to insert data g in ① of (c). However, since entry 50 already contains data, we check to see if there is an empty entry up to number 53, which is the size of the cache line (size 64 bytes). Since there is no empty entry in ②, we found entry 16 of Table2 using the hash function of table2. Since there is already data in entry 16 in ③, the data is inserted into the empty entry 20 as shown in ④ through sequential search.

도 6은 본 발명에 따라 멀티코어 캐시를 이용한 해싱 처리 장치에서 쿠쿠 해싱을 기반으로 검색 연산을 수행하기 위해 채용되는 구성을 설명하기 위한 도면이다.FIG. 6 is a diagram for describing a configuration employed to perform a search operation based on Cuckoo hashing in a hashing processing apparatus using a multicore cache according to the present invention.

도 6을 참조하여 설명하면, 본 발명에 따른 멀티코어 캐시를 이용한 해싱 처리 장치에서 쿠쿠 해싱을 기반으로 검색 연산을 수행하기 위해서는 검색 엔트리 산출부의 제1 검색 해싱부(410)와 검색 엔트리 연산부의 제1 엔트리 검색부(510)를 포함한다.Referring to FIG. 6, in order to perform a search operation based on Cuckoo hashing in the hashing processing apparatus using the multicore cache according to the present invention, the first search hashing unit 410 and the search entry operation unit of the search entry calculating unit may be used. One entry search unit 510 is included.

제1 검색 해싱부(410)는 데이터를 검색하기 위해 제1 테이블의 제1 해싱 함수를 이용하여 검색 엔트리를 산출한다. 여기서, 제1 해싱 함수는 쿠쿠 해싱이다.The first search hashing unit 410 calculates a search entry by using a first hashing function of the first table to search for data. Here, the first hashing function is Cuckoo hashing.

제1 엔트리 검색부(510)는 제1 검색 해싱부(410)에 의해, 제1 테이블의 제1 해싱 함수를 이용하여 산출된 검색 엔트리로부터 데이터를 회수한다.The first entry retrieval unit 510 retrieves data from the search entry calculated by the first retrieval hashing unit 410 using the first hashing function of the first table.

이를 위해, 제1 엔트리 검색부(510)는 제1 검색 판단부(511), 추가 검색 엔트리 산출부(512), 제2 검색 판단부(513), 검색 엔트리 산출부(514) 및 제1 데이터 회수부(515)를 포함한다.To this end, the first entry search unit 510 may include a first search determination unit 511, an additional search entry calculation unit 512, a second search determination unit 513, a search entry calculation unit 514, and first data. The recovery unit 515 is included.

제1 검색 판단부(511)는 제1 테이블의 제1 해싱 함수를 이용하여 산출된 제1 테이블에 따른 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 검색 엔트리에 데이터가 존재하는지의 여부를 판단한다.The first search determination unit 511 searches for a search entry according to the cache table size calculated using the first hashing function of the first table according to the cache line size, and determines whether data exists in the corresponding search entry. do.

추가 검색 엔트리 산출부(512)는 판단 결과, 제1 테이블에 따른 검색 엔트리에 데이터가 존재하지 않는 경우 제2 테이블의 제1 해싱 함수를 이용하여 추가 검색 엔트리를 산출한다.The additional search entry calculator 512 calculates an additional search entry by using the first hashing function of the second table when no data exists in the search entry according to the first table.

제2 검색 판단부(513)는 제2 테이블의 제1 해싱 함수를 이용하여 산출된 제2 테이블에 따른 추가 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 추가 검색 엔트리에 데이터가 존재하는지의 여부를 판단한다.The second search determiner 513 searches for an additional search entry according to the second table calculated using the first hashing function of the second table according to the cache line size, and whether data exists in the corresponding additional search entry. Judge.

검색 엔트리 산출부(514)는 판단 결과, 제2 테이블에 따른 추가 검색 엔트리가 비어있지 않은 경우 제2 테이블을 순차 검색하여 새로운 검색 엔트리를 산출한다.As a result of the determination, the search entry calculator 514 sequentially searches the second table to calculate a new search entry when the additional search entry according to the second table is not empty.

제1 데이터 회수부(515)는 판단 결과, 제1 테이블에 따른 검색 엔트리에 데이터가 존재하는 경우 해당 데이터를 회수하고, 제2 테이블에 따른 추가 검색 엔트리에 데이터가 존재하는 경우 해당 데이터를 회수하고, 제2 테이블의 순차 검색 후 검색된 새로운 검색 엔트리로부터 해당 데이터를 회수한다.As a result of determination, the first data recovery unit 515 recovers the data when the data exists in the search entry according to the first table, and recovers the data when the data exists in the additional search entry according to the second table. After the sequential search of the second table, the corresponding data is retrieved from the searched new search entry.

도 7은 본 발명에 따라 멀티코어 캐시를 이용한 해싱 처리 장치에서 체인 해싱을 기반으로 삽입 연산을 수행하기 위해 채용되는 구성을 설명하기 위한 도면이다.FIG. 7 is a diagram for describing a configuration employed to perform an insert operation based on chain hashing in a hashing processing apparatus using a multicore cache according to the present invention.

도 7을 참조하여 설명하면, 본 발명에 따른 멀티코어 캐시를 이용한 해싱 처리 장치에서 체인 해싱을 기반으로 삽입 연산을 수행하기 위해서는 삽입 엔트리 산출부의 제2 삽입 해싱부(220) 및 삽입 엔트리 연산부의 제2 엔트리 삽입부(320)를 포함한다.Referring to FIG. 7, in order to perform an insert operation based on chain hashing in the hashing processing apparatus using the multicore cache according to the present invention, the second insert hashing unit 220 of the insert entry calculating unit and the insert entry calculating unit may be used. And a two-entry insertion unit 320.

제2 삽입 해싱부(220)는 데이터를 삽입하기 위해 제2 해싱 함수를 이용하여 삽입 엔트리를 산출한다. 여기서, 제2 해싱 함수는 체인 해싱이다.The second insertion hashing unit 220 calculates an insertion entry using a second hashing function to insert data. Here, the second hashing function is chain hashing.

제2 엔트리 삽입부(320)는 제2 삽입 해싱부(220)에 의해, 제2 해싱 함수를 이용하여 산출된 삽입 엔트리에 데이터를 삽입한다.The second entry inserting unit 320 inserts data into the insertion entry calculated by the second insertion hashing unit 220 using the second hashing function.

이를 위해, 제2 엔트리 삽입부(320)는 제3 삽입 판단부(321), 제1 노드 존재 판단부(322), 제4 삽입 판단부(323) 및 제2 데이터 삽입부(324)를 포함한다.To this end, the second entry insertion unit 320 includes a third insertion determination unit 321, a first node existence determination unit 322, a fourth insertion determination unit 323, and a second data insertion unit 324. do.

제3 삽입 판단부(321)는 제2 해싱 함수를 이용하여 산출된 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 삽입 엔트리가 비어있는지의 여부를 판단한다.The third insertion determination unit 321 searches for the insertion entry calculated using the second hashing function according to the cache line size, and determines whether the corresponding insertion entry is empty.

제1 노드 존재 판단부(322)는 판단 결과, 산출된 삽입 엔트리가 비어있지 않은 경우 연결 노드의 존재 여부를 판단한다.As a result of the determination, when the calculated insertion entry is not empty, the first node existence determination unit 322 determines whether a connection node exists.

제4 삽입 판단부(323)는 판단 결과, 연결 노드가 존재하는 경우 산출된 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 삽입 엔트리가 비어있는지의 여부를 판단한다.As a result of the determination, the fourth insertion determination unit 323 searches for the calculated insertion entry according to the cache line size when the connection node exists, and determines whether the corresponding insertion entry is empty.

제2 데이터 삽입부(324)는 판단 결과, 산출된 삽입 엔트리가 비어있는 경우 해당 삽입 엔트리에 데이터를 삽입하고, 연결 노드가 존재하고 산출된 삽입 엔트리가 비어있는 경우 해당 삽입 엔트리에 데이터를 삽입하고, 연결 노드가 존재하지 않는 경우 새로운 노드를 생성한 후 생성된 노드에 데이터를 삽입한다.As a result of determination, the second data insertion unit 324 inserts data into the corresponding insertion entry when the calculated insertion entry is empty, and inserts data into the corresponding insertion entry when the connection node exists and the calculated insertion entry is empty. If a connection node does not exist, create a new node and insert data into the created node.

도 8은 본 발명에 따라 멀티코어 캐시를 이용한 해싱 처리 장치에서 체인 해싱을 기반으로 검색 연산을 수행하기 위해 채용되는 구성을 설명하기 위한 도면이다.FIG. 8 is a diagram illustrating a configuration employed to perform a search operation based on chain hashing in a hashing processing apparatus using a multicore cache according to the present invention.

도 8을 참조하여 설명하면, 본 발명에 따른 멀티코어 캐시를 이용한 해싱 처리 장치에서 체인 해싱을 기반으로 검색 연산을 수행하기 위해서는 검색 엔트리 산출부의 제2 검색 해싱부(420)와 검색 엔트리 연산부의 제2 엔트리 검색부(520)를 포함한다.Referring to FIG. 8, in order to perform a search operation based on chain hashing in the hashing processing apparatus using the multicore cache according to the present invention, the second search hashing unit 420 of the search entry calculating unit and the search entry calculating unit may be used. And an entry search unit 520.

제2 검색 해싱부(420)는 데이터를 검색하기 위해 제2 해싱 함수를 이용하여 검색 엔트리를 산출한다. 여기서, 제2 해싱 함수는 체인 해싱이다.The second search hashing unit 420 calculates a search entry by using a second hashing function to search for data. Here, the second hashing function is chain hashing.

제2 엔트리 검색부(520)는 제2 검색 해싱부(420)에 의해, 제2 해싱 함수를 이용하여 산출된 검색 엔트리로부터 데이터를 회수한다.The second entry retrieving unit 520 retrieves data from the search entry calculated by the second retrieval hashing unit 420 using the second hashing function.

이를 위해, 제2 엔트리 검색부(520)는 제3 검색 판단부(521), 제2 노드 존재 판단부(522), 제4 검색 판단부(523) 및 제2 데이터 회수부(524)를 포함한다.To this end, the second entry search unit 520 includes a third search determination unit 521, a second node existence determination unit 522, a fourth search determination unit 523, and a second data recovery unit 524. do.

제3 검색 판단부(521)는 제2 해싱 함수를 이용하여 산출된 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 검색 엔트리에 데이터가 존재하는지의 여부를 판단한다.The third search determiner 521 searches the search entry calculated using the second hashing function according to the cache line size, and determines whether data exists in the search entry.

제2 노드 존재 판단부(522)는 판단 결과, 산출된 검색 엔트리에 데이터가 존재하지 않는 경우 연결 노드의 존재 여부를 판단한다.As a result of the determination, the second node presence determining unit 522 determines whether there is a connection node when no data exists in the calculated search entry.

제4 검색 판단부(523)는 판단 결과, 연결 노드가 존재하는 경우 산출된 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 검색 엔트리에 데이터가 존재하는지의 여부를 판단한다.As a result of determination, the fourth search determiner 523 searches for the calculated search entry according to the cache line size when the connection node exists, and determines whether data exists in the search entry.

제2 데이터 회수부(524)는 판단 결과, 산출된 검색 엔트리에 상기 데이터가 존재하는 경우 해당 데이터를 회수하고, 연결 노드가 존재하지 않는 경우와 연결 노드가 존재하는 경우에 산출된 검색 엔트리에 데이터가 존재하지 않는 경우 상기 데이터는 존재하지 않는 것으로 판단하고, 연결 노드가 존재하는 경우에 산출된 검색 엔트리에 엔트리가 존재하는 경우 해당 데이터를 회수한다.As a result of the determination, the second data recovery unit 524 recovers the data when the calculated search entry exists, and the data in the calculated search entry when the connection node does not exist and when the connection node exists. If is not present, it is determined that the data does not exist, and if there is an entry in the search entry calculated when there is a connection node, the corresponding data is retrieved.

도 9는 본 발명에 따른 쿠쿠 해싱을 기반으로 하는 멀티코어 캐시를 이용한 해싱 처리 방법에서 삽입 연산을 수행하는 과정을 설명하기 위한 순서도이다.9 is a flowchart illustrating a process of performing an insert operation in a hashing processing method using a multicore cache based on Cuckoo hashing according to the present invention.

도 9를 참조하여 설명하면, 본 발명에 따른 쿠쿠 해싱을 기반으로 하는 멀티코어 캐시를 이용한 해싱 처리 방법에서 삽입 연산을 수행하는 과정은 앞서 설명한 멀티코어 캐시를 이용한 해싱 처리 장치를 이용하는 것으로, 이하 중복되는 설명은 생략하기로 한다.Referring to FIG. 9, in the hashing processing method using the multicore cache based on Cuckoo hashing according to the present invention, the insert operation is performed by using the above-described hashing processing apparatus using the multicore cache. The description will be omitted.

먼저, 데이터를 삽입하기 위해 제1 테이블의 제1 해싱 함수를 이용하여 삽입 엔트리를 산출한다(S100). 여기서, 제1 해싱 함수는 쿠쿠 해싱이다.First, an insert entry is calculated using a first hashing function of the first table to insert data (S100). Here, the first hashing function is Cuckoo hashing.

다음, 제1 테이블의 제1 해싱 함수를 이용하여 산출된 제1 테이블에 따른 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 삽입 엔트리가 비어있는지의 여부를 판단한다(S110).Next, an insertion entry according to the first table calculated using the first hashing function of the first table is searched according to the cache line size to determine whether the corresponding insertion entry is empty (S110).

S110 단계에서, 판단 결과 제1 테이블에 따른 삽입 엔트리가 비어있지 않은 경우 제2 테이블의 제1 해싱 함수를 이용하여 추가 삽입 엔트리를 산출한다(S120).In operation S110, when the insertion entry according to the first table is not empty as a result of the determination, an additional insertion entry is calculated using the first hashing function of the second table (S120).

한편, S110 단계에서, 판단 결과 제1 테이블에 따른 삽입 엔트리가 비어있는 경우 해당 삽입 엔트리에 데이터를 삽입한다(S125).On the other hand, in step S110, if the insertion entry according to the first table is empty as a result of the determination, data is inserted into the insertion entry (S125).

다음, 제2 테이블의 제1 해싱 함수를 이용하여 산출된 제2 테이블에 따른 추가 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 추가 삽입 엔트리가 비어있는지의 여부를 판단한다(S130).Next, an additional insertion entry according to the second table calculated using the first hashing function of the second table is searched according to the cache line size to determine whether the corresponding additional insertion entry is empty (S130).

S130 단계에서, 판단 결과 제2 테이블에 따른 추가 삽입 엔트리가 비어있는 경우 해당 추가 삽입 엔트리에 데이터를 삽입한다(S135).In operation S130, when the additional insertion entry according to the second table is empty as a result of the determination, data is inserted into the corresponding additional insertion entry (S135).

한편, S130 단계에서, 판단 결과 제2 테이블에 따른 추가 삽입 엔트리가 비어있지 않은 경우 제2 테이블을 순차 검색하여 새로운 삽입 엔트리를 산출되면 해당 새로운 삽입 엔트리에 데이터를 삽입한다(S140).Meanwhile, in operation S130, when the additional insertion entry according to the second table is not empty, when a new insertion entry is calculated by sequentially searching the second table, data is inserted into the new insertion entry (S140).

도 10은 본 발명에 따른 쿠쿠 해싱을 기반으로 하는 멀티코어 캐시를 이용한 해싱 처리 방법에서 검색 연산을 수행하는 과정을 설명하기 위한 순서도이다.10 is a flowchart illustrating a process of performing a search operation in a hashing processing method using a multicore cache based on Cuckoo hashing according to the present invention.

도 10을 참조하여 설명하면, 본 발명에 따른 쿠쿠 해싱을 기반으로 하는 멀티코어 캐시를 이용한 해싱 처리 방법에서 검색 연산을 수행하는 과정은 앞서 설명한 멀티코어 캐시를 이용한 해싱 처리 장치를 이용하는 것으로, 이하 중복되는 설명은 생략하기로 한다.Referring to FIG. 10, a process of performing a search operation in the hashing processing method using the multicore cache based on Cuckoo hashing according to the present invention uses the above-described hashing processing device using the multicore cache. The description will be omitted.

먼저, 데이터를 검색하기 위해 제1 테이블의 제1 해싱 함수를 이용하여 검색 엔트리를 산출한다(S200). 여기서, 제1 해싱 함수는 쿠쿠 해싱이다.First, a search entry is calculated using the first hashing function of the first table to search for data (S200). Here, the first hashing function is Cuckoo hashing.

다음, 제1 테이블의 제1 해싱 함수를 이용하여 산출된 제1 테이블에 따른 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 검색 엔트리에 데이터가 존재하는지의 여부를 판단한다(S210).Next, the search entry according to the first table calculated using the first hashing function of the first table is searched according to the cache line size, and it is determined whether data exists in the corresponding search entry (S210).

S210 단계에서, 판단 결과 제1 테이블에 따른 검색 엔트리에 데이터가 존재하지 않는 경우 제2 테이블의 제1 해싱 함수를 이용하여 추가 검색 엔트리를 산출한다(S220).In operation S210, when there is no data in the search entry according to the first table, the additional search entry is calculated using the first hashing function of the second table (S220).

한편, S210 단게에서, 판단 결과 제1 테이블에 따른 검색 엔트리에 데이터가 존재하는 경우 해당 데이터를 회수한다.On the other hand, in step S210, if data exists in the search entry according to the first table as a result of the determination, the corresponding data is recovered.

다음, 제2 테이블의 제1 해싱 함수를 이용하여 산출된 제2 테이블에 따른 추가 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 추가 검색 엔트리에 데이터가 존재하는지의 여부를 판단한다(S230).Next, an additional search entry according to the second table calculated using the first hashing function of the second table is searched according to the cache line size, and it is determined whether data exists in the corresponding additional search entry (S230).

S230 단계에서, 판단 결과 제2 테이블에 따른 추가 검색 엔트리에 데이터가 존재하는 경우 해당 데이터를 회수한다(S235)In operation S230, if data exists in the additional search entry according to the second table, the corresponding data is recovered (S235).

한편, S230 단계에서, 판단 결과 제2 테이블에 따른 추가 검색 엔트리가 비어있지 않은 경우 제2 테이블을 순차 검색하여 새로운 검색 엔트리를 산출한 후 새로운 검색 엔트리로부터 해당 데이터를 회수한다(S240).Meanwhile, in operation S230, when the additional search entry according to the second table is not empty, the second table is sequentially searched to calculate a new search entry, and then the corresponding data is recovered from the new search entry (S240).

도 11은 본 발명에 따른 체인 해싱을 기반으로 하는 멀티코어 캐시를 이용한 해싱 처리 방법에서 삽입 연산을 수행하는 과정을 설명하기 위한 순서도이다.11 is a flowchart illustrating a process of performing an insert operation in a hashing processing method using a multicore cache based on chain hashing according to the present invention.

도 11을 참조하여 설명하면, 본 발명에 따른 체인 해싱을 기반으로 하는 멀티코어 캐시를 이용한 해싱 처리 방법에서 삽입 연산을 수행하는 과정은 앞서 설명한 멀티코어 캐시를 이용한 해싱 처리 장치를 이용하는 것으로, 이하 중복되는 설명은 생략하기로 한다.Referring to FIG. 11, in the hashing processing method using a multicore cache based on chain hashing according to the present invention, the insert operation is performed by using the above-described hashing processing apparatus using the multicore cache. The description will be omitted.

먼저, 데이터를 삽입하기 위해 제2 해싱 함수를 이용하여 삽입 엔트리를 산출한다(S300). 여기서, 제2 해싱 함수는 체인 해싱이다.First, an insertion entry is calculated using a second hashing function to insert data (S300). Here, the second hashing function is chain hashing.

다음, 제2 해싱 함수를 이용하여 산출된 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 삽입 엔트리가 비어있는지의 여부를 판단한다(S310).Next, the insertion entry calculated using the second hashing function is searched according to the cache line size, and it is determined whether the corresponding insertion entry is empty (S310).

S310 단계에서, 판단 결과 산출된 삽입 엔트리가 비어있는 경우 해당 삽입 엔트리에 데이터를 삽입한다(S315).In step S310, if the insertion result calculated as a result is empty, data is inserted into the corresponding insertion entry (S315).

S310 단계에서, 판단 결과 산출된 삽입 엔트리가 비어있지 않은 경우 연결 노드의 존재 여부를 판단한다(S320).In operation S310, when the insertion entry calculated as a result of the determination is not empty, it is determined whether a connection node exists (S320).

S320 단계에서, 판단 결과 연결 노드가 존재하는 경우 산출된 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 삽입 엔트리가 비어있는지의 여부를 판단한다(S330).In operation S320, when the connection node exists, the calculated insertion entry is searched according to the cache line size to determine whether the corresponding insertion entry is empty (S330).

S330 단계에서, 판단 결과 산출된 삽입 엔트리가 비어있는 경우 해당 삽입 엔트리에 데이터를 삽입한다(S335).In operation S330, when the insertion result calculated as a result of the determination is empty, data is inserted into the corresponding insertion entry in operation S335.

한편, S320 단계에서, 판단 결과 연결 노드가 존재하지 않는 경우 그리고 S330 단계에서, 판단 결과 산출된 삽입 엔트리가 비어있지 않은 경우 새로운 노드를 생성한 후 생성된 노드에 데이터를 삽입한다(S340).On the other hand, in step S320, if there is no connection node as a result of the determination and in step S330, if the insertion entry calculated as a result of the determination is not empty, after generating a new node (S340).

도 12는 본 발명에 따른 체인 해싱을 기반으로 하는 멀티코어 캐시를 이용한 해싱 처리 방법에서 검색 연산을 수행하는 과정을 설명하기 위한 순서도이다.12 is a flowchart illustrating a process of performing a search operation in a hashing processing method using a multicore cache based on chain hashing according to the present invention.

도 12를 참조하여 설명하면, 본 발명에 따른 체인 해싱을 기반으로 하는 멀티코어 캐시를 이용한 해싱 처리 방법에서 검색 연산을 수행하는 과정은 앞서 설명한 멀티코어 캐시를 이용한 해싱 처리 장치를 이용하는 것으로, 이하 중복되는 설명은 생략하기로 한다.Referring to FIG. 12, a process of performing a search operation in a hashing processing method using a multicore cache based on chain hashing according to the present invention uses the above-described hashing processing apparatus using a multicore cache. The description will be omitted.

먼저, 데이터를 검색하기 위해 제2 해싱 함수를 이용하여 검색 엔트리를 산출한다(S400). 여기서, 제2 해싱 함수는 체인 해싱이다.First, a search entry is calculated using a second hashing function to search for data (S400). Here, the second hashing function is chain hashing.

다음, 제2 해싱 함수를 이용하여 산출된 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 검색 엔트리에 데이터가 존재하는지의 여부를 판단한다(S410).Next, the search entry calculated using the second hashing function is searched according to the cache line size, and it is determined whether data exists in the corresponding search entry (S410).

S410 단계에서, 판단 결과 해당 검색 엔트리에 데이터가 존재하는 경우 해당 데이터를 회수한다(S145).In operation S410, if data exists in the corresponding search entry as a result of the determination, the corresponding data is recovered (S145).

한편, S410 단계에서, 판단 결과 산출된 검색 엔트리에 데이터가 존재하지 않는 경우 연결 노드의 존재 여부를 판단한다(S420).Meanwhile, in operation S410, when there is no data in the search entry calculated as a result of the determination, it is determined whether a connection node exists (S420).

S420 단계에서, 판단 결과 연결 노드가 존재하는 경우 산출된 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 검색 엔트리에 데이터가 존재하는지의 여부를 판단한다(S430).In operation S420, when the connection node exists, the calculated search entry is searched according to the cache line size to determine whether data exists in the corresponding search entry (S430).

S430 단계에서, 판단 결과 연결 노드가 존재하는 경우에 산출된 검색 엔트리에 엔트리가 존재하는 경우 해당 데이터를 회수한다(S435)In operation S430, if the entry exists in the search entry calculated when the connection node exists, the corresponding data is recovered (S435).

한편, S410 단계에서, 판단 결과 연결 노드가 존재하지 않는 경우 그리고 S430 단계에서, 판단 결과 연결 노드가 존재하는 경우에 산출된 검색 엔트리에 데이터가 존재하지 않는 경우 상기 데이터는 존재하지 않는 것으로 판단한다(S440).Meanwhile, in operation S410, when there is no connection node as a result of determination and in operation S430, when there is no data in the search entry calculated when the connection node is present as a result of determination, the data is determined not to exist ( S440).

도 13은 본 발명에 따른 멀티코어 캐시를 이용한 해싱 처리 장치 및 방법의 성능시험결과에서 테이블의 크기를 나타내는 도면이고, 도 14는 본 발명에 따른 멀티코어 캐시를 이용한 해싱 처리 장치 및 방법의 성능시험결과에서 채우기 비율이 90% 이상일 때 삽입 연산의 성능을 나타내는 도면이고, 도 15는 본 발명에 따른 멀티코어 캐시를 이용한 해싱 처리 장치 및 방법의 성능시험결과에서 채우기 비율이 90% 이상일 때 검색 연산의 성능을 나타내는 도면이다.13 is a diagram showing the size of the table in the performance test results of the hashing processing apparatus and method using a multicore cache according to the present invention, Figure 14 is a performance test of the hashing processing apparatus and method using a multicore cache according to the present invention. The figure shows the performance of the insert operation when the fill ratio is 90% or more from the results. It is a figure which shows performance.

도 14에서 (a)는 Insert operation for 8M (b)는 Lookup operation for 8M (c)는 Insert operation for 16M (d)는 Lookup operation for 16M (e)는 Insert operation for 32M (f)는 Lookup operation for 32M 을 나타내고, 도 15에서 (a)는 Insert operation for fill factor 30% (b)는 Lookup operation for fill factor 30% (c)는 Insert operation for fill factor 50% (d)는 Lookup operation for fill factor 50% (e)는 Insert operation for fill factor 70% (f)는 Lookup operation for fill factor 70% (g)는 Insert operation for fill factor 90% (h)는 Lookup operation for fill factor 90%을 나타낸다. In Figure 14, (a) is Insert operation for 8M (b) is Lookup operation for 8M (c) is Insert operation for 16M (d) is Lookup operation for 16M (e) is Insert operation for 32M (f) is Lookup operation for 32M, in FIG. 15, (a) shows Insert operation for fill factor 30% (b) shows Insert operation for fill factor 30% (c) shows Insert operation for fill factor 50% (d) shows Lookup operation for fill factor 50 % (e) indicates Insert operation for fill factor 70% (f) indicates Lookup operation for fill factor 70% (g) indicates Insert operation for fill factor 90% (h) indicates Lookup operation for fill factor 90%.

이상 본 명세서에서 설명한 기능적 동작과 본 주제에 관한 실시형태들은 본 명세서에서 개시한 구조들 및 그들의 구조적인 등가물을 포함하여 디지털 전자 회로나 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 혹은 이들 중 하나 이상이 조합에서 구현 가능하다. The functional operations described herein and the embodiments relating to the subject matter are implemented in digital electronic circuitry or computer software, firmware or hardware, including the structures disclosed herein and their structural equivalents, or in combination with one or more of them. It is possible.

본 명세서에서 기술하는 주제의 실시형태는 하나 이상이 컴퓨터 프로그램 제품, 다시 말해 데이터 처리 장치에 의한 실행을 위하여 혹은 그 동작을 제어하기 위하여 유형의 프로그램 매체 상에 인코딩되는 컴퓨터 프로그램 명령에 관한 하나 이상이 모듈로서 구현될 수 있다. 유형의 프로그램 매체는 전파형 신호이거나 컴퓨터로 판독 가능한 매체일 수 있다. 전파형 신호는 컴퓨터에 의한 실행을 위하여 적절한 수신기 장치로 전송하기 위한 정보를 인코딩하기 위하여 생성되는 예컨대 기계가 생성한 전기적, 광학적 혹은 전자기 신호와 같은 인공적으로 생성된 신호이다. 컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조합 혹은 이들 중 하나 이상이 조합일 수 있다.Embodiments of the subject matter described herein include one or more computer program instructions, one or more computer program instructions that are encoded on a tangible program medium for execution by a data processing apparatus or to control its operation. It can be implemented as a module. The tangible program medium may be a propagated signal or a computer readable medium. A propagated signal is an artificially generated signal such as a machine generated electrical, optical or electromagnetic signal that is generated to encode information for transmission to a suitable receiver device for execution by a computer. The computer readable medium may be a machine readable storage device, a machine readable storage substrate, a memory device, a combination of materials affecting a machine readable propagated signal, or a combination of one or more of them.

컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. Computer programs (also known as programs, software, software applications, scripts, or code) may be written in any form of programming language, including compiled or interpreted languages, or a priori or procedural languages. It can be deployed in any form, including components, subroutines, or other units suitable for use in a computer environment.

컴퓨터 프로그램은 파일 장치의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상이 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상이 스크립트) 내에 저장될 수 있다. The computer program does not necessarily correspond to a file of the file device. A program may be in a single file provided to the requested program, or in multiple interactive files (eg, one or more files that store modules, subprograms, or parts of code), or other files that hold data or other programs. Some (eg, one or more stored in a markup language document) may be stored within.

컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.The computer program may be deployed to run on a single computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communication network.

부가적으로, 본 특허문헌에서 기술하는 논리 흐름과 구조적인 블록도는 개시된 구조적인 수단의 지원을 받는 대응하는 기능과 단계의 지원을 받는 대응하는 행위 및/또는 특정한 방법을 기술하는 것으로, 대응하는 소프트웨어 구조와 알고리즘과 그 등가물을 구축하는 데에도 사용 가능하다. In addition, the logic flows and structural block diagrams described in this patent document describe corresponding acts and / or specific methods supported by the corresponding functions and steps supported by the disclosed structural means, corresponding It can also be used to build software structures and algorithms and their equivalents.

본 명세서에서 기술하는 프로세스와 논리 흐름은 입력 데이터 상에서 동작하고 출력을 생성함으로써 기능을 수행하기 위하여 하나 이상이 컴퓨터 프로그램을 실행하는 하나 이상이 프로그래머블 프로세서에 의하여 수행 가능하다.The processes and logic flows described herein are capable of being executed by one or more programmable processors that execute one or more computer programs to perform functions by operating on input data and generating output.

컴퓨터 프로그램의 실행에 적합한 프로세서는, 예컨대 범용 및 특수 목적의 마이크로프로세서 양자 및 어떤 종류의 디지털 컴퓨터의 어떠한 하나 이상이 프로세서라도 포함한다. 일반적으로, 프로세서는 읽기 전용 메모리나 랜덤 액세스 메모리 혹은 양자로부터 명령어와 데이터를 수신할 것이다. Processors suitable for the execution of computer programs include, for example, both general and special purpose microprocessors and any one or more of any kind of digital computer. In general, a processor will receive instructions and data from a read only memory or a random access memory or both.

컴퓨터의 핵심적인 요소는 명령어와 데이터를 저장하기 위한 하나 이상이 메모리 장치 및 명령을 수행하기 위한 프로세서이다. 또한, 컴퓨터는 일반적으로 예컨대 자기, 자기광학 디스크나 광학 디스크와 같은 데이터를 저장하기 위한 하나 이상이 대량 저장 장치로부터 데이터를 수신하거나 그것으로 데이터를 전송하거나 혹은 그러한 동작 둘 다를 수행하기 위하여 동작가능 하도록 결합되거나 이를 포함할 것이다. 그러나, 컴퓨터는 그러한 장치를 가질 필요가 없다.At the heart of a computer is one or more memory devices for storing instructions and data and a processor for performing instructions. In addition, computers are generally such that one or more for storing data such as, for example, magnetic, magneto-optical disks or optical disks are operable to receive data from, transfer data to, or perform both of these operations. Combined or will include it. However, the computer does not need to have such a device.

본 기술한 설명은 본 발명의 최상의 모드를 제시하고 있으며, 본 발명을 설명하기 위하여, 그리고 당업자가 본 발명을 제작 및 이용할 수 있도록 하기 위한 예를 제공하고 있다. 이렇게 작성된 명세서는 그 제시된 구체적인 용어에 본 발명을 제한하는 것이 아니다. The foregoing description presents the best mode of the invention, and provides examples to illustrate the invention and to enable those skilled in the art to make and use the invention. The specification thus produced is not intended to limit the invention to the specific terms presented.

따라서, 상술한 예를 참조하여 본 발명을 상세하게 설명하였지만, 당업자라면 본 발명의 범위를 벗어나지 않으면서도 본 예들에 대한 개조, 변경 및 변형을 가할 수 있다. 요컨대 본 발명이 의도하는 효과를 달성하기 위해 도면에 도시된 모든 기능 블록을 별도로 포함하거나 도면에 도시된 모든 순서를 도시된 순서 그대로 따라야만 하는 것은 아니며, 그렇지 않더라도 얼마든지 청구항에 기재된 본 발명의 기술적 범위에 속할 수 있음에 주의한다.Thus, while the present invention has been described in detail with reference to the above examples, those skilled in the art can make modifications, changes, and variations to the examples without departing from the scope of the invention. In short, in order to achieve the intended effect of the present invention, it is not necessary to separately include all the functional blocks shown in the drawings or to follow all the orders shown in the drawings in the order shown; Note that it may fall within the scope.

100 : 멀티코어 캐시를 이용한 해싱 처리 장치
200 : 삽입 엔트리 산출부
300 : 삽입 엔트리 연산부
400 : 검색 엔트리 산출부
500 : 검색 엔트리 연산부
100: hashing processing device using a multi-core cache
200: insertion entry calculation unit
300: insertion entry operation unit
400: search entry calculation unit
500: search entry operation unit

Claims (19)

데이터를 삽입(Insert)하기 위해 해싱 함수를 이용하여 삽입 엔트리를 산출하는 삽입 엔트리 산출부;
캐시라인 사이즈에 맞춰 산출된 삽입 엔트리를 검색하여 비어있는 엔트리를 산출하고, 산출된 엔트리에 상기 데이터를 삽입하는 삽입 엔트리 연산부;
데이터를 검색(Lookup)하기 위해 해싱 함수를 이용하여 검색 엔트리를 산출하는 검색 엔트리 산출부; 및
캐시라인 사이즈에 맞춰 산출된 검색 엔트리를 검색하여 해당 데이터가 존재하는 엔트리를 산출하고, 산출된 엔트리로부터 상기 데이터를 회수하는 검색 엔트리 연산부;를 포함하되,
상기 해싱 함수는 제1 테이블 및 제2 테이블을 사용하는 제1 해싱 함수 또는 제2 해싱 함수 중 적어도 어느 하나를 이용하고,
상기 삽입 엔트리 산출부는,
데이터를 삽입하기 위해 제1 테이블의 제1 해싱 함수를 이용하여 삽입 엔트리를 산출하는 제1 삽입 해싱부;
를 포함하고,
상기 삽입 엔트리 연산부는,
상기 제1 삽입 해싱부에 의해, 제1 테이블의 제1 해싱 함수를 이용하여 산출된 삽입 엔트리에 상기 데이터를 삽입하는 제1 엔트리 삽입부;
를 포함하고,
상기 제1 엔트리 삽입부는,
제1 테이블의 제1 해싱 함수를 이용하여 산출된 제1 테이블에 따른 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 삽입 엔트리가 비어있는지의 여부를 판단하는 제1 삽입 판단부;
판단 결과, 제1 테이블에 따른 삽입 엔트리가 비어있지 않은 경우 제2 테이블의 제1 해싱 함수를 이용하여 추가 삽입 엔트리를 산출하는 추가 삽입 엔트리 산출부;
제2 테이블의 제1 해싱 함수를 이용하여 산출된 제2 테이블에 따른 추가 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 추가 삽입 엔트리가 비어있는지의 여부를 판단하는 제2 삽입 판단부; 및
판단 결과, 제2 테이블에 따른 추가 삽입 엔트리가 비어있지 않은 경우 제2 테이블을 순차 검색하여 새로운 삽입 엔트리를 산출하는 삽입 엔트리 검색부;
를 포함하는 것을 특징으로 하는 멀티코어 캐시를 이용한 해싱 처리 장치.
An insertion entry calculation unit configured to calculate an insertion entry using a hashing function to insert data;
An insertion entry operation unit which searches for an insertion entry calculated according to a cache line size, calculates an empty entry, and inserts the data into the calculated entry;
A search entry calculator configured to calculate a search entry by using a hashing function to look up data; And
And a search entry operation unit for searching for a search entry calculated according to the cache line size, calculating an entry in which corresponding data exists, and recovering the data from the calculated entry.
The hashing function uses at least one of a first hashing function or a second hashing function using a first table and a second table,
The insertion entry calculation unit,
A first insertion hashing unit configured to calculate an insertion entry by using a first hashing function of the first table to insert data;
Including,
The insertion entry calculator,
A first entry inserter which inserts the data by the first insert hashing unit into an insert entry calculated using the first hashing function of the first table;
Including,
The first entry insertion unit,
A first insertion determination unit searching for an insertion entry according to the first table calculated using a first hashing function of the first table according to a cache line size, and determining whether the corresponding insertion entry is empty;
An additional insertion entry calculator configured to calculate an additional insertion entry using the first hashing function of the second table when the insertion entry according to the first table is not empty;
A second insertion determination unit searching for an additional insertion entry according to the second table calculated using the first hashing function of the second table according to the cache line size, and determining whether the additional insertion entry is empty; And
An insertion entry searching unit configured to sequentially search the second table to calculate a new insertion entry when the additional insertion entry according to the second table is not empty;
Hashing processing apparatus using a multi-core cache comprising a.
제1항에 있어서,
상기 해싱 함수에서 이용되는 제1 해싱 함수는 쿠쿠 해싱이고, 제2 해싱 함수는 체인 해싱인 것을 특징으로 하는 멀티코어 캐시를 이용한 해싱 처리 장치.
The method of claim 1,
The first hashing function used in the hashing function is Cuckoo hashing, and the second hashing function is chain hashing.
제1항에 있어서,
상기 삽입 엔트리 산출부는,
데이터를 삽입하기 위해 제2 해싱 함수를 이용하여 삽입 엔트리를 산출하는 제2 삽입 해싱부;
를 더 포함하는 것을 특징으로 하는 멀티코어 캐시를 이용한 해싱 처리 장치.
The method of claim 1,
The insertion entry calculation unit,
A second insertion hashing unit configured to calculate an insertion entry by using a second hashing function to insert data;
Hash processing apparatus using a multi-core cache, characterized in that it further comprises.
제3항에 있어서,
상기 삽입 엔트리 연산부는,
상기 제2 삽입 해싱부에 의해, 제2 해싱 함수를 이용하여 산출된 삽입 엔트리에 상기 데이터를 삽입하는 제2 엔트리 삽입부;
를 더 포함하는 것을 특징으로 하는 멀티코어 캐시를 이용한 해싱 처리 장치.
The method of claim 3,
The insertion entry calculator,
A second entry inserter which inserts the data by the second insert hashing unit into an insert entry calculated using a second hashing function;
Hash processing apparatus using a multi-core cache, characterized in that it further comprises.
삭제delete 제1항에 있어서,
판단 결과, 제1 테이블에 따른 삽입 엔트리가 비어있는 경우 해당 삽입 엔트리에 상기 데이터를 삽입하고, 제2 테이블에 따른 추가 삽입 엔트리가 비어있는 경우 해당 추가 삽입 엔트리에 상기 데이터를 삽입하고, 제2 테이블의 순차 검색 후 검색된 새로운 삽입 엔트리에 상기 데이터를 삽입하는 제1 데이터 삽입부를 포함하는 것을 특징으로 하는 멀티코어 캐시를 이용한 해싱 처리 장치.
The method of claim 1,
As a result of the determination, if the insertion entry according to the first table is empty, the data is inserted into the corresponding insertion entry; if the additional insertion entry according to the second table is empty, the data is inserted into the corresponding insertion entry; and the second table And a first data inserting unit inserting the data into a new insertion entry searched after a sequential search of the multi-core cache.
제4항에 있어서,
상기 제2 엔트리 삽입부는,
제2 해싱 함수를 이용하여 산출된 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 삽입 엔트리가 비어있는지의 여부를 판단하는 제3 삽입 판단부;
판단 결과, 산출된 삽입 엔트리가 비어있지 않은 경우 연결 노드의 존재 여부를 판단하는 제1 노드 존재 판단부; 및
판단 결과, 연결 노드가 존재하는 경우 산출된 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 삽입 엔트리가 비어있는지의 여부를 판단하는 제4 삽입 판단부;
를 포함하는 것을 특징으로 하는 멀티코어 캐시를 이용한 해싱 처리 장치.
The method of claim 4, wherein
The second entry insertion unit,
A third insertion determination unit searching for an insertion entry calculated using a second hashing function according to a cache line size, and determining whether the corresponding insertion entry is empty;
A first node presence determination unit that determines whether a connection node exists when the calculated insertion entry is not empty; And
A fourth insertion determination unit which searches for the calculated insertion entry according to the cache line size when the connection node exists, and determines whether the corresponding insertion entry is empty;
Hashing processing apparatus using a multi-core cache comprising a.
제7항에 있어서,
판단 결과, 산출된 삽입 엔트리가 비어있는 경우 해당 삽입 엔트리에 상기 데이터를 삽입하고, 연결 노드가 존재하고 산출된 삽입 엔트리가 비어있는 경우 해당 삽입 엔트리에 상기 데이터를 삽입하고, 연결 노드가 존재하지 않는 경우 새로운 노드를 생성한 후 생성된 노드에 상기 데이터를 삽입하는 제2 데이터 삽입부를 포함하는 것을 특징으로 하는 멀티코어 캐시를 이용한 해싱 처리 장치.
The method of claim 7, wherein
If it is determined that the calculated insertion entry is empty, the data is inserted into the corresponding insertion entry. If the connection node exists and the calculated insertion entry is empty, the data is inserted into the corresponding insertion entry, and the connection node does not exist. And a second data insertion unit for inserting the data into the generated node after generating a new node.
제1항에 있어서,
상기 검색 엔트리 산출부는,
상기 데이터를 검색하기 위해 제1 테이블의 제1 해싱 함수를 이용하여 검색 엔트리를 산출하는 제1 검색 해싱부; 및
상기 데이터를 검색하기 위해 제2 해싱 함수를 이용하여 검색 엔트리를 산출하는 제2 검색 해싱부;
를 포함하는 것을 특징으로 하는 멀티코어 캐시를 이용한 해싱 처리 장치.
The method of claim 1,
The search entry calculator,
A first search hashing unit configured to calculate a search entry by using a first hashing function of a first table to search the data; And
A second search hashing unit configured to calculate a search entry by using a second hashing function to search the data;
Hashing processing apparatus using a multi-core cache comprising a.
제9항에 있어서,
상기 검색 엔트리 연산부는,
상기 제1 검색 해싱부에 의해, 제1 테이블의 제1 해싱 함수를 이용하여 산출된 검색 엔트리로부터 상기 데이터를 회수하는 제1 엔트리 검색부; 및
상기 제2 검색 해싱부에 의해, 제2 해싱 함수를 이용하여 산출된 검색 엔트리로부터 상기 데이터를 회수하는 제2 엔트리 검색부;
를 포함하는 것을 특징으로 하는 멀티코어 캐시를 이용한 해싱 처리 장치.
The method of claim 9,
The search entry operation unit,
A first entry retrieving unit for retrieving the data from the retrieval entry calculated by using the first hashing function of the first table by the first retrieval hashing unit; And
A second entry retrieving unit for retrieving the data from the search entry calculated by using the second hashing function by the second retrieval hashing unit;
Hashing processing apparatus using a multi-core cache comprising a.
제10항에 있어서,
상기 제1 엔트리 검색부는,
제1 테이블의 제1 해싱 함수를 이용하여 산출된 제1 테이블에 따른 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 검색 엔트리에 상기 데이터가 존재하는지의 여부를 판단하는 제1 검색 판단부;
판단 결과, 제1 테이블에 따른 검색 엔트리에 상기 데이터가 존재하지 않는 경우 제2 테이블의 제1 해싱 함수를 이용하여 추가 검색 엔트리를 산출하는 추가 검색 엔트리 산출부;
제2 테이블의 제1 해싱 함수를 이용하여 산출된 제2 테이블에 따른 추가 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 추가 검색 엔트리에 상기 데이터가 존재하는지의 여부를 판단하는 제2 검색 판단부; 및
판단 결과, 제2 테이블에 따른 추가 검색 엔트리가 비어있지 않은 경우 제2 테이블을 순차 검색하여 새로운 검색 엔트리를 산출하는 검색 엔트리 산출부;
를 포함하는 것을 특징으로 하는 멀티코어 캐시를 이용한 해싱 처리 장치.
The method of claim 10,
The first entry search unit,
A first search determining unit searching a search entry according to the first table calculated using a first hashing function of the first table according to a cache line size, and determining whether the data exists in the corresponding search entry;
An additional search entry calculator configured to calculate an additional search entry by using a first hashing function of a second table when the data does not exist in the search entry according to the first table;
A second search determination unit that searches for additional search entries according to the second table calculated using the first hashing function of the second table according to the cache line size, and determines whether the data exists in the corresponding additional search entry; ; And
A search entry calculator configured to sequentially search the second table to calculate a new search entry when the additional search entry according to the second table is not empty;
Hashing processing apparatus using a multi-core cache comprising a.
제11항에 있어서,
판단 결과, 제1 테이블에 따른 검색 엔트리에 상기 데이터가 존재하는 경우 해당 데이터를 회수하고, 제2 테이블에 따른 추가 검색 엔트리에 상기 데이터가 존재하는 경우 해당 데이터를 회수하고, 제2 테이블의 순차 검색 후 검색된 새로운 검색 엔트리로부터 해당 데이터를 회수하는 제1 데이터 회수부를 포함하는 것을 특징으로 하는 멀티코어 캐시를 이용한 해싱 처리 장치.
The method of claim 11,
As a result of the determination, if the data exists in the search entry according to the first table, the corresponding data is recovered; if the data exists in the additional search entry according to the second table, the corresponding data is recovered, and the sequential search of the second table is performed. And a first data retrieval unit for retrieving the corresponding data from the new search entry retrieved after the retrieval.
제10항에 있어서,
상기 제2 엔트리 검색부는,
제2 해싱 함수를 이용하여 산출된 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 검색 엔트리에 상기 데이터가 존재하는지의 여부를 판단하는 제3 검색 판단부;
판단 결과, 산출된 검색 엔트리에 상기 데이터가 존재하지 않는 경우 연결 노드의 존재 여부를 판단하는 제2 노드 존재 판단부; 및
판단 결과, 연결 노드가 존재하는 경우 산출된 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 검색 엔트리에 상기 데이터가 존재하는지의 여부를 판단하는 제4 검색 판단부;
를 포함하는 것을 특징으로 하는 멀티코어 캐시를 이용한 해싱 처리 장치.
The method of claim 10,
The second entry search unit,
A third search determination unit which searches a search entry calculated using a second hashing function according to a cache line size, and determines whether the data exists in the corresponding search entry;
A second node presence determining unit determining whether a connection node exists when the data does not exist in the calculated search entry; And
A fourth search determination unit for searching the calculated search entry according to the cache line size when the connection node exists, and determining whether the data exists in the corresponding search entry;
Hashing processing apparatus using a multi-core cache comprising a.
제13항에 있어서,
판단 결과, 산출된 검색 엔트리에 상기 데이터가 존재하는 경우 해당 데이터를 회수하고, 연결 노드가 존재하지 않는 경우와 연결 노드가 존재하는 경우에 산출된 검색 엔트리에 상기 데이터가 존재하지 않는 경우 상기 데이터는 존재하지 않는 것으로 판단하고, 연결 노드가 존재하는 경우에 산출된 검색 엔트리에 상기 엔트리가 존재하는 경우 해당 데이터를 회수하는 제2 데이터 회수부를 포함하는 것을 특징으로 하는 멀티코어 캐시를 이용한 해싱 처리 장치.
The method of claim 13,
As a result of the determination, if the data exists in the calculated search entry, the corresponding data is retrieved, and if the data does not exist in the calculated search entry when the connection node does not exist and the connection node exists, the data is And a second data recovery unit for retrieving the data if the entry exists in the search entry calculated when there is a connection node and determining that there is no connection node.
삽입 엔트리 산출부에 의해, 데이터를 삽입(Insert)하기 위해 해싱 함수를 이용하여 삽입 엔트리를 산출하는 단계;
삽입 엔트리 연산부에 의해, 캐시라인 사이즈에 맞춰 산출된 삽입 엔트리를 검색하여 비어있는 엔트리를 산출하고, 산출된 엔트리에 상기 데이터를 삽입하는 단계;
검색 엔트리 산출부에 의해, 데이터를 검색(Lookup)하기 위해 해싱 함수를 이용하여 검색 엔트리를 산출하는 단계; 및
검색 엔트리 연산부에 의해, 캐시라인 사이즈에 맞춰 산출된 검색 엔트리를 검색하여 해당 데이터가 존재하는 엔트리를 산출하고, 산출된 엔트리로부터 상기 데이터를 회수하는 단계;를 포함하되,
상기 해싱 함수는 제1 테이블 및 제2 테이블을 사용하는 제1 해싱 함수 또는 제2 해싱 함수 중 적어도 어느 하나를 이용하고,
캐시라인 사이즈에 맞춰 산출된 검색 엔트리를 검색하여 해당 데이터가 존재하는 엔트리를 산출하고, 산출된 엔트리로부터 상기 데이터를 회수하는 단계는,
제1 테이블의 제1 해싱 함수를 이용하여 산출된 검색 엔트리로부터 상기 데이터를 회수하는 단계를 포함하며,
제1 테이블의 제1 해싱 함수를 이용하여 산출된 검색 엔트리로부터 상기 데이터를 회수하는 단계는,
제1 테이블의 제1 해싱 함수를 이용하여 산출된 제1 테이블에 따른 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 검색 엔트리에 상기 데이터가 존재하는지의 여부를 판단하는 단계;
판단 결과, 제1 테이블에 따른 검색 엔트리에 상기 데이터가 존재하지 않는 경우 제2 테이블의 제1 해싱 함수를 이용하여 추가 검색 엔트리를 산출하는 단계;
제2 테이블의 제1 해싱 함수를 이용하여 산출된 제2 테이블에 따른 추가 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 추가 검색 엔트리에 상기 데이터가 존재하는지의 여부를 판단하는 단계; 및
판단 결과, 제2 테이블에 따른 추가 검색 엔트리가 비어있지 않은 경우 제2 테이블을 순차 검색하여 새로운 검색 엔트리를 산출하는 단계;
를 포함하는 것을 특징으로 하는 멀티코어 캐시를 이용한 해싱 처리 방법.
Calculating, by the insertion entry calculator, an insertion entry using a hashing function to insert data;
Searching an insertion entry calculated according to the cache line size by the insertion entry calculating unit to calculate an empty entry, and inserting the data into the calculated entry;
Calculating, by the search entry calculator, a search entry using a hashing function to look up data; And
A search entry calculating unit, searching for a search entry calculated according to the cache line size, calculating an entry in which the corresponding data exists, and recovering the data from the calculated entry;
The hashing function uses at least one of a first hashing function or a second hashing function using a first table and a second table,
Searching for a search entry calculated according to a cache line size to calculate an entry in which the corresponding data exists, and recovering the data from the calculated entry;
Recovering said data from a search entry calculated using a first hashing function of a first table,
Recovering the data from the search entry calculated using the first hashing function of the first table,
Searching for a search entry according to the first table calculated using a first hashing function of the first table according to a cache line size, and determining whether the data exists in the corresponding search entry;
Calculating an additional search entry using a first hashing function of a second table when the data does not exist in the search entry according to the first table;
Searching for the additional search entry according to the second table calculated using the first hashing function of the second table according to the cache line size, and determining whether the data exists in the corresponding additional search entry; And
If the additional search entry according to the second table is not empty, calculating a new search entry by sequentially searching the second table;
Hashing processing method using a multi-core cache comprising a.
제15항에 있어서,
캐시라인 사이즈에 맞춰 산출된 삽입 엔트리를 검색하여 비어있는 엔트리를 산출하고, 산출된 엔트리에 상기 데이터를 삽입하는 단계는,
제1 테이블의 제1 해싱 함수를 이용하여 산출된 삽입 엔트리에 상기 데이터를 삽입하는 단계를 포함하며, 제1 테이블의 제1 해싱 함수를 이용하여 산출된 삽입 엔트리에 상기 데이터를 삽입하는 단계는,
제1 테이블의 제1 해싱 함수를 이용하여 산출된 제1 테이블에 따른 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 삽입 엔트리가 비어있는지의 여부를 판단하는 단계;
판단 결과, 제1 테이블에 따른 삽입 엔트리가 비어있지 않은 경우 제2 테이블의 제1 해싱 함수를 이용하여 추가 삽입 엔트리를 산출하는 단계;
제2 테이블의 제1 해싱 함수를 이용하여 산출된 제2 테이블에 따른 추가 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 추가 삽입 엔트리가 비어있는지의 여부를 판단하는 단계: 및
판단 결과, 제2 테이블에 따른 추가 삽입 엔트리가 비어있지 않은 경우 제2 테이블을 순차 검색하여 새로운 삽입 엔트리를 산출하는 단계;
를 포함하는 것을 특징으로 하는 멀티코어 캐시를 이용한 해싱 처리 방법.
The method of claim 15,
Searching for an insertion entry calculated according to the cache line size to calculate an empty entry, and inserting the data into the calculated entry,
Inserting the data into an insert entry calculated using the first hashing function of the first table, and inserting the data into the insert entry calculated using the first hashing function of the first table,
Retrieving an insertion entry according to the first table calculated using a first hashing function of the first table according to a cache line size, and determining whether the corresponding insertion entry is empty;
If the insertion result according to the first table is not empty, calculating an additional insertion entry using a first hashing function of the second table;
Retrieving additional insert entries according to the second table calculated using the first hashing function of the second table according to the cache line size, and determining whether the corresponding additional insert entries are empty; and
If the additional insertion entry according to the second table is not empty, determining the new insertion entry by sequentially searching the second table;
Hashing processing method using a multi-core cache comprising a.
제15항에 있어서,
캐시라인 사이즈에 맞춰 산출된 삽입 엔트리를 검색하여 비어있는 엔트리를 산출하고, 산출된 엔트리에 상기 데이터를 삽입하는 단계는,
제2 해싱 함수를 이용하여 산출된 삽입 엔트리에 상기 데이터를 삽입하는 단계를 포함하며, 제1 테이블의 제1 해싱 함수를 이용하여 산출된 삽입 엔트리에 상기 데이터를 삽입하는 단계는,
제2 해싱 함수를 이용하여 산출된 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 삽입 엔트리가 비어있는지의 여부를 판단하는 단계;
판단 결과, 산출된 삽입 엔트리가 비어있지 않은 경우 연결 노드의 존재 여부를 판단하는 단계; 및
판단 결과, 연결 노드가 존재하는 경우 산출된 삽입 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 삽입 엔트리가 비어있는지의 여부를 판단하는 단계:
를 포함하는 것을 특징으로 하는 멀티코어 캐시를 이용한 해싱 처리 방법.
The method of claim 15,
Searching for an insertion entry calculated according to the cache line size to calculate an empty entry, and inserting the data into the calculated entry,
And inserting the data into an insert entry calculated using a second hashing function, and inserting the data into the insert entry calculated using the first hashing function of the first table.
Searching for the insertion entry calculated using the second hashing function according to the cache line size, and determining whether the corresponding insertion entry is empty;
Determining whether a connection node exists when the calculated insertion entry is not empty; And
As a result of the determination, when the connection node exists, searching for the calculated insertion entry according to the cache line size and determining whether the corresponding insertion entry is empty:
Hashing processing method using a multi-core cache comprising a.
삭제delete 제15항에 있어서,
캐시라인 사이즈에 맞춰 산출된 검색 엔트리를 검색하여 해당 데이터가 존재하는 엔트리를 산출하고, 산출된 엔트리로부터 상기 데이터를 회수하는 단계는,
제2 해싱 함수를 이용하여 산출된 검색 엔트리로부터 상기 데이터를 회수하는 단계를 포함하며, 제2 해싱 함수를 이용하여 산출된 검색 엔트리로부터 상기 데이터를 회수하는 단계는,
제2 해싱 함수를 이용하여 산출된 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 검색 엔트리에 상기 데이터가 존재하는지의 여부를 판단하는 단계;
판단 결과, 산출된 검색 엔트리에 상기 데이터가 존재하지 않는 경우 연결 노드의 존재 여부를 판단하는 단계; 및
판단 결과, 연결 노드가 존재하는 경우 산출된 검색 엔트리를 캐시라인 사이즈에 맞춰 검색하여, 해당 검색 엔트리에 상기 데이터가 존재하는지의 여부를 판단하는 단계;
를 포함하는 것을 특징으로 하는 멀티코어 캐시를 이용한 해싱 처리 방법.
The method of claim 15,
Searching for a search entry calculated according to a cache line size to calculate an entry in which the corresponding data exists, and recovering the data from the calculated entry;
Recovering the data from the search entry calculated using a second hashing function, wherein recovering the data from the search entry calculated using a second hashing function includes:
Retrieving a search entry calculated using a second hashing function according to a cache line size, and determining whether the data exists in the corresponding search entry;
Determining whether there is a connection node when the data does not exist in the calculated search entry; And
As a result of the determination, searching for the calculated search entry according to the cache line size when the connection node exists, and determining whether the data exists in the corresponding search entry;
Hashing processing method using a multi-core cache comprising a.
KR1020170155516A 2017-11-21 2017-11-21 Apparatus and method for hashing processing using multi core cache KR102017135B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170155516A KR102017135B1 (en) 2017-11-21 2017-11-21 Apparatus and method for hashing processing using multi core cache

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170155516A KR102017135B1 (en) 2017-11-21 2017-11-21 Apparatus and method for hashing processing using multi core cache

Publications (2)

Publication Number Publication Date
KR20190057977A KR20190057977A (en) 2019-05-29
KR102017135B1 true KR102017135B1 (en) 2019-09-02

Family

ID=66672886

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170155516A KR102017135B1 (en) 2017-11-21 2017-11-21 Apparatus and method for hashing processing using multi core cache

Country Status (1)

Country Link
KR (1) KR102017135B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100382821B1 (en) * 1994-08-11 2003-07-18 인텔 코오퍼레이션 2-way set associative cache memory

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150045073A (en) * 2013-10-18 2015-04-28 ㈜윈웨이시스템 Data Operating Method And System supporting the same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100382821B1 (en) * 1994-08-11 2003-07-18 인텔 코오퍼레이션 2-way set associative cache memory

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
김의혁 외 1인, '멀티코어 CPU를 위한 최신 해싱 방법들의 성능분석', 정보과학회논문지 pp189-pp201, 2013.6.*

Also Published As

Publication number Publication date
KR20190057977A (en) 2019-05-29

Similar Documents

Publication Publication Date Title
US11086665B2 (en) Scheduling services for quantum computing
JP6427592B2 (en) Manage data profiling operations related to data types
US9645828B2 (en) Method of searching character string, character string searching device, and recording medium
US20140188818A1 (en) Optimizing a partition in data deduplication
US9811321B1 (en) Script compilation
US10572544B1 (en) Method and system for document similarity analysis
KR102201510B1 (en) Managing memory and storage space for a data operation
US8812492B2 (en) Automatic and dynamic design of cache groups
CA2501657A1 (en) Mechanism for obtaining and applying constraints to constructs within an interactive environment
CN107784003B (en) Data query anomaly detection method, device, equipment and system
Takemasa et al. Toward an ideal NDN router on a commercial off-the-shelf computer
CN111026736B (en) Data blood margin management method and device and data blood margin analysis method and device
KR102017135B1 (en) Apparatus and method for hashing processing using multi core cache
CN110221778A (en) Processing method, system, storage medium and the electronic equipment of hotel's data
Kowalski et al. High-Performance Tree Indices: Locality matters more than one would think.
CN115237954A (en) Cuckoo Hash query method based on PIM device, PIM device and system
CN115114289A (en) Data query method and device and electronic equipment
JP2014228891A (en) Compiler and compilation method
CN112181825A (en) Test case library construction method and device, electronic equipment and medium
CN112506651A (en) Method and equipment for data operation in large-data-volume environment
CN112084141A (en) Full-text retrieval system capacity expansion method, device, equipment and medium
CN104239001A (en) Operand generation in at least one processing pipeline
KR102145440B1 (en) Apparatus and method for processing high speed data for a smart factory
US11379449B2 (en) Method, electronic device and computer program product for creating metadata index
US9823841B2 (en) Associating keys with data and compute objects in a storage compute device

Legal Events

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