KR102613523B1 - 메모리 내 효율적인 다단계 검색 - Google Patents
메모리 내 효율적인 다단계 검색 Download PDFInfo
- Publication number
- KR102613523B1 KR102613523B1 KR1020200057092A KR20200057092A KR102613523B1 KR 102613523 B1 KR102613523 B1 KR 102613523B1 KR 1020200057092 A KR1020200057092 A KR 1020200057092A KR 20200057092 A KR20200057092 A KR 20200057092A KR 102613523 B1 KR102613523 B1 KR 102613523B1
- Authority
- KR
- South Korea
- Prior art keywords
- search
- column
- matching
- similarity
- accuracy
- Prior art date
Links
- 239000013598 vector Substances 0.000 claims abstract description 32
- 238000000034 method Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 7
- 239000000126 substance Substances 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
캐스케이딩 검색을 수행하기 위한 시스템은 연관 메모리 어레이, 제어기, 유사성 검색 프로세서 및 정확성 매칭 프로세서를 포함한다. 연관 메모리 어레이는 복수의 다중 부분 데이터 벡터를 연관 메모리 어레이의 적어도 하나의 칼럼에 저장한다. 각 벡터는 제1 부분 및 제2 부분을 가지며, 제1 부분 및 제2 부분은 칼럼에서 서로 정렬된다. 제어기는 제1 부분 상의 유사성 쿼리에 대해 유사성 검색 및 제2 부분 상의 정확성 쿼리에 대해 정확성 검색을 수행하도록 연관 메모리 어레이를 제어한다. 유사성 매칭 프로세서는 각각의 유사성 매칭된 칼럼에 정렬된 매칭 비트 표시를 포함하는 매칭 로우를 생성한다. 매칭 로우는 유사성 쿼리에 매칭되는 제1 부분을 가지는 칼럼을 표시한다. 정확성 매칭 프로세서는 정확성 쿼리에 매칭되는 제2 부분을 가지는 유사성 매칭된 칼럼 중에서 정확성 매칭 칼럼을 출력한다.
Description
본 출원은 2019년 5월 19일자로 출원된 미국 가출원 제 62/849,913호의 우선권 및 이익을 주장하며, 이는 전체로서 원용에 의해 본 출원에 포함된다.
본 발명은 일반적인 검색에 관한 것이며, 데이터 및 메타데이터를 검색하기 위한 효율적인 방법에 관한 것이다.
“검색(search)”이라는 용어는 인터넷의 출현과, 구글, 빙(Bing), 덕덕고(Duck Duck Go)와 같은 검색 엔진의 개발과 함께 보편화되었다. 이러한 인터넷 검색 엔진은 텍스트 기반 쿼리(text-based query)를 이용하고, 이를 웹 사이트 콘텐츠 및 메타데이터와 비교하여, 그들의 자체적인 순위 시스템에 따라 매칭되는 것을 반환한다. 이러한 유형의 키워드 검색을 정확한 검색이라고도 지칭한다.
정확성 검색이 가장 일반적인 검색 유형일 수 있지만, 이것이 컴퓨터에 의해 수행되는 유일한 검색 유형은 아니다. 네트워크 관리자는 해커가 그들의 통신 및 컴퓨터 네트워크를 손상시키는 것을 우려하고 있다. 해커는 네트워크 상의 디바이스 또는 어플리케이션의 취약점을 통해 악성 코드를 네트워크에 주입하려고 시도할 수 있다. 주입된 코드를 알려진 침입 유형과 비교함으로써 그들은 이러한 악성 페이로드를 식별할 수 있고, 이를 네트워크로부터 제거할 수 있다. 화학자들은 새로 개발된 분자와 다른 알려진 분자를 비교하여 그들이 어떻게 반응하거나 용해될 수 있는지 이해하려고 시도하는 것을 원할 수 있다. 이러한 유형의 검색은 유사성 검색으로 알려져 있으며, 인공 지능(artificial intelligence, AI) 방법을 기반으로 할 수 있다. 유사성 검색 메트릭(metric)은 쿼리 분자 지문(query molecular fingerprint)에 존재하는 특징과 후보 분자 지문(candidate molecular fingerprint)에 존재하는 특징을 비교할 수 있다. 이러한 메트릭의 예시로서, 타니모토(Tanimoto), 해밍(Hamming), L1, L2, 또는 제커드 검색(Jaccard search) 등이 있다. 화학은 종종 분자 지문들 사이의 유사성을 정량화하기 위해 타니모토 메트릭을 사용한다.
이제, 제1 부분(2)과 제2 부분(3)의 두 부분으로 분할된 다중 부분 벡터(1)를 도시한 도 1을 참조한다. 다중 부분 벡터는 하나 이상의 유형의 데이터를 포함할 수 있으므로, 네트워크 관리자의 예시에서, 제1 부분(2)은 어드레싱 및 전송 정보를 포함하는 헤더일 수 있고, 제2 부분(3)은 파일 또는 다른 데이터를 포함하는 페이로드일 수 있다. 화학적 예시에서, 제1 부분(2)은 분자 지문을 포함할 수 있고, 제2 부분(3)은 분자 지문과 연관된 메타데이터 또는 메타데이터 포인터를 포함할 수 있다. 제1 부분(2)은 제2 부분(3)과 동일하거나 상이한 크기일 수 있다.
이러한 다중 부분 벡터가 주어지면, 검색자는 목표 그룹을 형성하기 위해 다중 부분 벡터의 부분 중 하나의 초기 검색을 사용할 수 있는 반복 검색을 이용할 수 있다. 그 후, 목표 그룹 자체는 다중 부분 벡터의 제2 부분을 사용하여 검색될 수 있다. 이러한 반복 검색은 멀티스테이지(multistage) 또는 캐스케이딩 검색(cascading search)으로 알려져 있으며, 여기서 검색 i는 검색 i+1에 그 결과를 제공하며, 이는 통상적이며 공지된 알려진 작업이다. 캐스케이딩 검색은 이전 네트워크 및 화학적 예시에서 이용될 수 있지만, 이용된 검색 유형 및 검색된 부분이 상이할 수 있다. 유사성 검색은 알려진 악성 코드 또는 침입 유형에 대한 것일 수 있다. 그 후, 네트워크 관리자는 제2 부분(3)의 정확성 검색을 수행할 수 있으며, 이 경우에 헤더는, 이러한 해커의 공지된 소스 어드레스에 대한 어드레스 정보를 포함하는 경우일 수 있다. 화학적 예시에서, 분자의 그룹은 분자 지문을 포함하는 제1 부분(2)의 유사성 검색을 사용하여 발견될 수 있으며; 유사성 검색 결과에 대한 후속하는 정확성 검색, 예를 들어, 키워드 검색은, 이후 제2 부분 2에 있는 메타데이터 상에서 수행되거나, 또는 제2 부분 2에 있는 메타데이터 포인터에 의해 표시된 소스로부터 회수된 메타데이터 상에서 수행될 수 있다.
네트워크 관리자 예시에서, 초기 유사성 검색은 제2 부분(3) 상에서 수행되었지만, 화학적 예시에서, 유사성 검색은 제1 부분(2) 상에서 수행되었다는 것이 이해될 것이다.
이제, 도 2 및 도 3을 참조한다. 도 2는 유사성 검색기(8), 유사성 검색 데이터베이스(10), 검색 결과 데이터베이스(12), 정확성 검색기(9), 정확성 검색 데이터 회수기(17), 회수된 데이터 데이터베이스(15) 및 정확성 검색 소스 데이터베이스(18)를 포함하는 캐스케이딩 검색 시스템(19)을 도시한다; 도 3은 멀티스테이지 검색에서 두번째 스테이지로 수행되는 정확성 검색의 단계를 도시한다.
검색 시스템(19)은 유사성 검색에 이어 정확성 검색을 수행할 수 있다. 초기에, 유사성 검색기(8)는 유사성 검색 쿼리에 대한 벡터 부분 중 하나에서 유사한 데이터를 가지는 유사성 검색 데이터베이스(10)로부터 후보 벡터를 찾기 위해 유사성 검색을 수행한다. 화학적 예시에서, 이는 분자 지문의 특징 검색일 수 있다. 이후, 유사성 검색기(8)는 유사성 검색 결과 벡터의 두 부분을 결과 데이터베이스(12)에 출력한다.
이어서, 검색 시스템(19)은 화학적 예시에서, 관련 메타데이터 또는 메타데이터의 소스에 대한 하나 이상의 포인터를 포함할 수 있는 후보 벡터의 제2 부분(3)의 정확성 검색을 수행한다.
도 3의 단계 21에서, 정확성 검색 데이터 회수기(17)는 검색 결과 데이터베이스(12)의 후보 벡터로부터 메타데이터 포인터를 회수한다. 이후 단계 23에서, 정확성 검색 데이터 검색기(17)는 이러한 메타데이터 포인터를 사용하여 정확성 검색 소스 데이터베이스(들)(18)로부터 메타데이터 자체를 회수하고, 단계 25에서, 이를 회수된 데이터 데이터베이스(15)에 추가한다. 다음으로, 단계 27에서, 정확성 검색기(9)는 회수된 데이터 데이터베이스(15)에서 메타데이터에 대해 정확성 검색을 수행한다. 마지막으로, 단계 29에서, 정확성 검색기(15)는 정확성 검색 결과를 출력한다.
검색 결과 데이터베이스(12)의 각 후보는 다수의 메타데이터 포인터를 포함할 수 있다. 결과적으로, 정확성 검색 데이터 회수기(17)는 다수의 정확성 검색 소스 데이터베이스(18)로부터 각각의 메타데이터 블록을 개별적으로 회수하고, 이를 회수된 데이터 데이터베이스(15)에 추가할 필요가 있을 수 있다. 이후, 정확성 검색기(8)는 각각의 메타데이터 블록에 대한 검색을 수행할 것이다.
이러한 전체 메타데이터 회수 프로세스는 이후 검색 결과 데이터베이스(15)의 각 후보 및 모든 연관된 메타데이터 포인터에 대해 반복된다.
본 발명의 바람직한 실시예에 따르면, 캐스케이딩 검색을 수행하기 위한 시스템은 연관 메모리 어레이, 제어기, 유사성 검색 프로세서 및 정확성 매칭 프로세서를 포함한다. 연관 메모리 어레이는 복수의 다중 부분 데이터 벡터를 저장한다. 각각의 다중 부분 데이터 벡터는 연관 메모리 어레이의 적어도 하나의 칼럼에 저장되며, 제1 부분 및 제2 부분을 갖는다. 제1 부분 및 제2 부분은 적어도 하나의 칼럼에서 서로 정렬된다. 제어기는 제1 부분 상의 유사성 쿼리에 대한 유사성 검색 및 제2 부분 상의 정확성 쿼리에 대한 정확성 검색을 수행하도록 연관 메모리 어레이를 제어한다. 유사성 매칭 프로세서는 각각의 유사성 매칭된 칼럼에 정렬된 매칭 비트 표시를 포함하는 매칭 로우를 생성한다. 매칭 로우는 어느 칼럼이 유사성 쿼리에 매칭되는 제1 부분을 가지는지를 표시한다. 정확성 매칭 프로세서는 매칭 로우에 의해 표시된 유사성 매칭된 칼럼 중에서 정확성 매칭 칼럼을 출력한다. 정확성 매칭 칼럼은 정확성 쿼리에 매칭되는 제2 부분을 가진다.
또한, 본 발명의 바람직한 실시예에 따르면, 유사성 매칭 프로세서는 타니모토(Tanimoto) 검색, 해밍(Hamming) 검색, L1 검색, L2 검색, 또는 제커드 검색(Jaccard search)과 같은 유사성 메트릭을 이용한다.
또한, 본 발명의 바람직한 실시예에 따르면, 정확성 매칭 프로세서는 유사성 매칭된 칼럼을 표시하는 매칭 비트를 위한 매칭 로우를 검색한다.
또한, 본 발명의 바람직한 실시예에 따르면, 제어기는 유사성 매칭된 칼럼을 표시하는 매칭 비트와 동일한 비트 값을 가지면서 동일한 비트 위치의 정확성 검색 쿼리에 검색 비트를 덧붙임으로써 수정된 정확성 검색 쿼리를 생성한다.
또한, 본 발명의 바람직한 실시예에 따르면, 제1 부분은 분자 지문이고 제2 부분은 분자 지문과 연관된 메타데이터이거나, 또는 제1 부분은 소스 어드레스를 포함하는 헤더이고 제2 부분은 헤더와 연관된 페이로드이거나, 또는 제1 부분은 지문이고 제2 부분은 지문과 연관된 메타데이터이다.
본 발명의 바람직한 실시예에 따르면, 캐스케이딩 검색을 수행하는 방법 또한 제공된다. 본 방법은, 복수의 다중 부분 데이터 벡터를 연관 메모리 어레이에 저장하는 단계로서, 각 다중 부분 데이터 벡터는 연관 메모리 어레이의 적어도 하나의 칼럼에 저장되고 각 다중 부분 데이터 벡터는 제1 부분 및 제2 부분을 가지고, 상기 제1 부분 및 상기 제2 부분은 적어도 하나의 칼럼에서 서로 정렬되는, 저장하는 단계; 상기 제1 부분 상의 유사성 쿼리에 대한 유사성 검색 및 상기 제2 부분 상의 정확성 쿼리에 대한 정확성 검색을 수행하는 단계; 각각의 유사성 매칭된 칼럼에 정렬된 매칭 비트 표시를 포함하는 매칭 로우를 생성하는 단계로서, 상기 매칭 로우는 어느 칼럼이 상기 유사성 쿼리에 매칭되는 제1 부분을 가지는지를 표시하는, 매칭 로우를 생성하는 단계; 및 상기 제2 부분이 정확성 쿼리에 매칭되는 매칭 칼럼을 가지는 정확성 매칭 칼럼에 대해 매칭 로우에 의해 표시된 유사성 매칭된 칼럼을 검색하는 단계를 포함한다.
더 나아가, 유사성 검색은 타니모토(Tanimoto) 검색, 해밍(Hamming) 검색, L1 검색, L2 검색, 또는 제커드 검색(Jaccard search)과 같은 유사성 메트릭을 이용한다.
또한, 본 발명의 바람직한 실시예에 따르면, 본 방법은 유사성 매칭된 칼럼을 표시하는 매칭 비트에 대한 매칭 로우를 검색하는 단계를 포함한다.
또한, 본 발명의 바람직한 실시예에 따르면, 본 방법은 유사성 매칭된 칼럼을 표시하는 매칭 비트와 동일한 비트 값을 가지면서 동일한 비트 위치의 정확성 검색 쿼리에 검색 비트를 덧붙임으로써 수정된 정확성 검색 쿼리를 생성하는 단계를 포함한다.
본 발명으로 간주되는 발명의 대상은 본 명세서의 결론 부분에서 특히 지적되고 명백하게 청구된다. 그러나, 본 발명은, 그 목적, 특징, 및 장점을 함께 가지는 구성 및 동작 방법에 관한 것이며, 이는 첨부 도면과 함께 상세한 설명을 읽을 때 가장 잘 이해될 수 있다.
도 1은 다중 부분 벡터의 개략도이다;
도 2는 종래 기술의 캐스케이딩 검색 시스템의 개략도이다;
도 3은 정확성 검색 방법의 흐름도이다;
도 4는 연관 메모리 어레이의 개략도이다;
도 5는 도 4의 연관 메모리 어레이와 동작하는 유사성 검색 시스템의 개략도이다;
도 6은 도 4의 연관 메모리 어레이와 동작하는 정확성 검색 시스템의 개략도이며;
도 7은 수정된 검색 쿼리를 이용하는 도 6의 정확성 검색 시스템의 대안적인 실시예의 개략도이다.
예시의 단순성 및 명료성을 위해, 도면에 도시된 요소는 반드시 비례적으로 도시된 것은 아님을 이해할 것이다. 예를 들어, 일부 요소의 치수는 명확성을 위해 다른 요소에 비해 과장될 수 있다. 또한, 적절한 것으로 간주되는 경우, 대응하거나 유사한 요소를 나타내기 위해 도면들 사이에서 도면 부호가 반복될 수 있다.
도 1은 다중 부분 벡터의 개략도이다;
도 2는 종래 기술의 캐스케이딩 검색 시스템의 개략도이다;
도 3은 정확성 검색 방법의 흐름도이다;
도 4는 연관 메모리 어레이의 개략도이다;
도 5는 도 4의 연관 메모리 어레이와 동작하는 유사성 검색 시스템의 개략도이다;
도 6은 도 4의 연관 메모리 어레이와 동작하는 정확성 검색 시스템의 개략도이며;
도 7은 수정된 검색 쿼리를 이용하는 도 6의 정확성 검색 시스템의 대안적인 실시예의 개략도이다.
예시의 단순성 및 명료성을 위해, 도면에 도시된 요소는 반드시 비례적으로 도시된 것은 아님을 이해할 것이다. 예를 들어, 일부 요소의 치수는 명확성을 위해 다른 요소에 비해 과장될 수 있다. 또한, 적절한 것으로 간주되는 경우, 대응하거나 유사한 요소를 나타내기 위해 도면들 사이에서 도면 부호가 반복될 수 있다.
이하의 상세한 설명에서, 본 발명의 철저한 이해를 제공하기 위해 다수의 특정 세부 사항들이 기술된다. 그러나, 본 발명은 이러한 특정 세부 사항 없이도 실시될 수 있다는 것을 통상의 기술자들은 이해할 것이다. 다른 경우에, 잘 알려진 방법, 절차, 및 구성 요소는 본 발명을 모호하게 하지 않기 위해 상세히 기술되지 않았다.
출원인은 캐스케이딩 검색의 경우, 초기 유사성 검색에 이어, 메타데이터의 회수, 두번째로 메타데이터의 정확성 검색을 하는 것은 복잡하고 계산 비용이 많이 든다는 것을 깨달았다.
각각의 캐스케이딩 검색은 첫번째 유사성 검색으로 매우 많은 수의 후보 벡터를 반환할 수 있다. 이러한 유사성 매칭 후보 각각에 대해, 검색 시스템은 그들의 메타데이터 부분에서 모든 메타데이터 포인터를 찾고, 표시된 메타데이터 소스를 찾고, 메타데이터를 메모리에 다운로드하며, 메타데이터를 검색 프로세서에 전송하고, 검색을 수행하고 결과를 저장해야 한다. 결과적으로, 캐스케이딩 검색은 느리고, 비싸며, 수행하기 어렵다.
또한, 출원인은 대용량 데이터베이스의 효율적인 다단계 검색이, 2012년 8월 7일 등록된 미국 특허 제 8,238,173호(“저장 셀을 사용하여 계산을 수행하는 것”); 2018년 1월 2일 등록된 미국 특허 제 9,859,005호(“메모리 디바이스”); 2018년 12월 11일 등록된 미국 특허 제 10,153,042호(“비트 라인 프로세서를 가지는 메모리 내 계산 디바이스”); 및 2017년 7월 13일자로 출원되고 2021년 2월 23일자로 등록된 출원인에게 양도되고 원용에 의해 본원에 포함되는 미국 특허 제10,929,751호("일정한 처리 시간에서 K 극한값 찾기")에 기술된 연관 메모리 저장 장치 및 연관 처리 유닛을 사용함으로써 효율적으로 수행될 수 있음을 인식하였다. 더욱이, 이러한 검색은 한 유형의 검색에서 다른 유형으로의 입력/출력(IO) 시간을 제거하여 검색 시간을 수십 배 감소시킬 수 있다.
연관 메모리 어레이는 병렬 칼럼에 데이터를 저장한다. APU(associative processing units)라고 지칭되는 연관 메모리 계산 유닛은 칼럼 수에 관계없이 일정한 처리 시간으로 모든 칼럼에서 동시에 작동할 수 있다. APU는 칼럼의 데이터에 대해 간단한 부울 논리 함수(Boolean logic functions)와 복잡한 검색 기능을 수행하는데 이용될 수 있다.
이제, 대량의 복수의 데이터 칼럼(22)을 포함하는 연관 메모리 어레이(20)의 개략도인 도 4를 참조하며, 여기서 각 칼럼은 제1 부분(2) 및 제2 부분(3)을 포함하는 다중 부분 데이터 벡터(1)를 저장한다. 전형적으로, 하나의 부분은 연관 메모리 어레이(20)의 하나의 섹션(31)에 저장될 수 있으며, 그 동안 연관된 제2 부분은 연관 메모리 어레이(20)의 두번째 섹션(33)에 저장될 수 있다. 분자 예시에서, 제1 부분(2)은 분자 지문일 수 있고, 제2 부분(3)은 메타데이터일 수 있다. 네트워크 예시에서, 제1 부분(2)은 패킷 페이로드일 수 있으며, 제2 부분(3)은 패킷 헤더일 수 있다.
본 발명의 바람직한 실시예에 따르면, 다중 부분 벡터(1)의 두 부분은 연관 메모리 어레이의 동일한 칼럼에서 정렬된다. 도 4의 예시에서, 제1 부분(2)은 연관 메모리 칼럼(22)의 상부 섹션에 저장되고, 제2 부분(3)은 연관 메모리 칼럼(22)의 하부 섹션에 저장된다.
이제 연관 메모리 어레이(20)에서 구현된 멀티스테이지 유사성 검색 시스템을 함께 도시한 도 5 및 도 6을 참조한다. 검색 시스템은 대량의 복수의 데이터 칼럼(22), 제어기(26), 유사성 매칭 프로세서(32), 정확성 매칭 프로세서(38)(도 6에 상세히 기술됨) 및 매칭 로우(34)를 포함한다. 데이터 부분(2 및 3)은 전술한 바와 같이 메모리 칼럼(22)에 로딩될 수 있다. 도 6은 유사성 검색 시스템의 정확성 검색 부분을 상세하게 나타내고, 데이터 칼럼(22), 제어기(26), 정확성 매칭 프로세서(38), 및 매칭 로우(34)를 도시한다.
제1 부분(2) 및 제2 부분(3)은 전술한 바와 같이 메모리 칼럼(22)에 로딩될 수 있다. 유사성 매칭 프로세서(32)는 유사성 검색 쿼리를 수신할 수 있고, 칼럼(22) 상에서 유사성 검색을 병렬로 수행할 수 있어서, 어떤 칼럼이 유사성이 매칭되고 어떤 칼럼이 유사성이 매칭되지 않는지 표시하는 비트 표시를 포함하는 칼럼 당 매칭 결과를 생성한다. 유사성 매칭 프로세서(32)는 이들 결과를 어레이(20)의 하부 섹션의 매칭 로우(34)에 기록할 수 있다. 매칭 로우(34)의 각각의 비트 표시는 이들이 연관된 칼럼에 정렬될 수 있다는 것이 이해될 것이다.
출원인은, 제1 부분(2)이 제2 부분(3)에 정렬되기 때문에, 매칭 로우(34)는 이들이 정렬되지 않은 경우보다 훨씬 더 빠른 순서로 유사성 매칭 프로세서(32)에 의해 기록될 수 있음을 인식하였다.
출원인은 데이터 벡터(1)의 두 부분이 동일한 연관 메모리 칼럼에 정렬되므로, 기술된 병렬 칼럼 검색 및 기록 매칭 표시는 캐스케이딩 검색 시간을 상당히 감소시킨다는 것을 추가로 인식하였다.
도 6에 도시된 바와 같이, 정확성 매칭 프로세서(38)는 정확성 검색 쿼리를 수신할 수 있고, 매칭 로우(34)에서 매칭 비트 표시를 가지는 연관 메모리 칼럼(22)의 벡터들에 대해서만 정확성 검색을 수행할 수 있다. 정확성 매칭 프로세서(38)는 이후 정확성 매칭 결과를 출력한다.
출원인은 수정된 메타데이터 쿼리(36) 및 매칭 로우(34)의 매칭 비트 표시를 이용함으로써 유사성 검색 매칭된 칼럼들로 정확성 검색을 제한하는 것이 가능하다는 것을 추가로 인식하였다.
이제 참조하는 도 7에 도시된 대안적인 실시예에서, 제어기(26)는 정확성 검색 쿼리에 검색 비트(40)를 덧붙일수 있다. 검색 비트(40)는 매칭 비트(34)와 동일한 비트 값을 가질 수 있고, 연관 메모리 어레이 칼럼(22)의 다중 부분 벡터(1)의 제2 부분(3)에 덧붙여진 매칭 로우(34)와 동일한 비트 위치에 위치될 수 있다.
예를 들어, 검색 비트(40)가 정확성 검색 쿼리의 최하위 비트(least significant bit, LSB)로서 위치되고, 매칭 로우(34)가 다중 부분 후보 벡터(1)의 제2 부분(3)의 LSB로서 위치되면, 이후 정확성 매칭 프로세서(38)는 데이터 칼럼(22)의 하부 섹션 및 매칭 로우(34)의 조합에 대해 수정된 정확성 검색 쿼리의 LSB 부분으로서 검색 비트(40)를 이용할 수 있다. 검색 비트(40)를 덧붙임으로써, 매칭 로우(34)의 매칭 비트 표시를 갖는 칼럼만이 정확성 매칭 프로세서(38)에 의해 매칭될 수 있다는 것이 이해될 것이다.
32k 또는 64k와 같은 대량의 복수의 후보 벡터를 검색하는 경우, 수정된 검색 쿼리를 이용하는 유사성 매칭된 벡터로만 후속하는 정확성 검색을 제한하면 후속하는 정확성 검색의 시간을 추가로 감소시킬 수 있다는 것이 추가로 이해될 것이다.
모든 후보 벡터에 대한 모든 메타데이터가 사전-로딩(preloaded)되고 정렬되었으므로, 첫번째 검색 결과와 두번째 검색 간에 매칭되는 첫번째 검색 결과와 연관된 메타데이터를 중지하고 다운로드할 필요 없이 다수의 개별적인 캐스케이딩 검색이 매우 신속하게 수행될 수 있음이 이해될 것이다.
본 발명의 특정 특징이 본 명세서에서 예시되고 기술되었지만, 많은 수정, 대체, 변경, 및 등가물이 이제 통상의 기술자에게 발생할 것이다. 그러므로, 첨부된 청구 범위는 본 발명의 진정한 사상에 속하는 그러한 모든 수정 및 변경을 포함하도록 의도된 것으로 이해되어야 한다.
Claims (14)
- 캐스케이딩 검색(cascading search)을 수행하기 위한 시스템으로서,
각 열의 제1 섹션과 각 열의 제2 섹션으로 분리된 칼럼들을 갖는 연관 메모리 어레이로서, 상기 연관 메모리 어레이는 복수의 다중 부분 데이터 벡터를 저장하고, 개별 칼럼에 저장된 상기 다중 부분 데이터 벡터 각각은 상기 개별 칼럼의 상기 제1 섹션에 저장된 제1 부분 및 상기 개별 칼럼의 상기 제2 섹션에 저장된 제2 부분을 갖는, 상기 연관 메모리 어레이;
각 칼럼의 상기 제1 섹션 상의 유사성 쿼리(similarity query)에 대한 유사성 검색 및 각 칼럼의 상기 제2 섹션 상의 정확성 쿼리(exact query)에 대한 정확성 검색을 수행하도록 상기 연관 메모리 어레이를 제어하는 제어기;
각각의 유사성 매칭된 칼럼에 정렬된 매칭 비트 표시를 포함하는 상기 연관 메모리 어레이 내에서 매칭 로우를 생성하는 유사성 매칭 프로세서로서, 상기 매칭 로우는 어느 칼럼이 상기 유사성 쿼리에 매칭되는 제1 부분을 갖는지를 표시하는, 유사성 매칭 프로세서; 및
상기 매칭 로우에 의해 표시된 상기 유사성 매칭된 칼럼 중에서 정확성 매칭 칼럼을 출력하는 정확성 매칭 프로세서로서, 상기 정확성 매칭 칼럼은 상기 정확성 쿼리에 매칭되는 제2 부분을 가지는, 정확성 매칭 프로세서를 포함하는,
캐스케이딩 검색을 수행하기 위한 시스템. - 제1항에 있어서,
상기 유사성 매칭 프로세서는 타니모토(Tanimoto) 검색, 해밍(Hamming) 검색, L1 검색, L2 검색, 및 제커드 검색(Jaccard search) 중 하나인 유사성 메트릭을 이용하는,
캐스케이딩 검색을 수행하기 위한 시스템. - 제1항에 있어서,
상기 정확성 매칭 프로세서는 유사성 매칭된 칼럼을 표시하는 매칭 비트를 위한 상기 매칭 로우를 검색하는,
캐스케이딩 검색을 수행하기 위한 시스템. - 제1항에 있어서,
상기 제어기는 상기 정확성 검색 쿼리에 유사성 매칭된 칼럼을 표시하는 매칭 비트와 동일한 비트 값을 가지는 검색 비트를 동일한 비트 위치에 덧붙임으로써 수정된 정확성 검색 쿼리를 생성하는,
캐스케이딩 검색을 수행하기 위한 시스템. - 제1항에 있어서,
상기 제1 부분은 분자 지문(molecular fingerprint)이고, 상기 제2 부분은 상기 분자 지문과 연관된 메타데이터(metadata)인,
캐스케이딩 검색을 수행하기 위한 시스템. - 제1항에 있어서,
상기 제1 부분은 소스 어드레스 데이터를 포함하는 헤더이고, 상기 제2 부분은 상기 헤더와 연관된 페이로드(payload)인,
캐스케이딩 검색을 수행하기 위한 시스템. - 제1항에 있어서,
상기 제1 부분은 지문이고, 상기 제2 부분은 상기 지문과 연관된 메타데이터인,
캐스케이딩 검색을 수행하기 위한 시스템. - 캐스케이딩 검색을 수행하는 방법으로서,
각 열의 제1 섹션과 각 열의 제2 섹션으로 분리된 칼럼들을 갖는 연관 메모리 어레이 내에서, 상기 연관 메모리 어레이가 복수의 다중 부분 데이터 벡터를 저장하는 단계 - 상기 다중 부분 데이터 벡터 각각은 개별 칼럼에 저장되고, 상기 개별 칼럼의 상기 제1 섹션에 저장된 제1 부분 및 상기 개별 칼럼의 상기 제2 섹션에 저장된 제2 부분을 갖음 - ;
각 칼럼의 상기 제1 섹션 내에서 유사성 쿼리에 대한 유사성 검색 및 각 칼럼의 상기 제2 섹션 내에서 정확성 쿼리에 대한 정확성 검색을 수행하는 단계;
상기 연관 메모리 어레이 내에서, 각각의 유사성 매칭된 칼럼에 정렬된 매칭 비트 표시를 포함하는 매칭 로우를 생성하는 단계로서, 상기 매칭 로우는 어느 칼럼이 상기 유사성 쿼리에 매칭되는 제1 부분을 갖는지를 표시하는, 상기 매칭 로우를 생성하는 단계; 및
상기 매칭 로우에 의해 표시된 상기 유사성 매칭된 칼럼 중에서, 상기 제2 부분이 상기 정확성 쿼리에 매칭되는 매칭 칼럼을 가지는 정확성 매칭 칼럼을 검색하는 단계를 포함하는,
캐스케이딩 검색을 수행하는 방법. - 제8항에 있어서,
상기 유사성 검색은 타니모토 검색, 해밍 검색, L1 검색, L2 검색, 및 제커드 검색 중 하나인 유사성 메트릭을 이용하는,
캐스케이딩 검색을 수행하는 방법. - 제8항에 있어서,
유사성 매칭된 칼럼을 표시하는 매칭 비트에 대해 상기 매칭 로우를 검색하는 단계를 포함하는,
캐스케이딩 검색을 수행하는 방법. - 제8항에 있어서,
상기 정확성 검색 쿼리에 상기 유사성 매칭된 칼럼을 표시하는 매칭 비트와 동일한 비트 값을 가지는 검색 비트를 동일한 비트 위치에 덧붙임으로써 수정된 정확성 검색 쿼리를 생성하는 단계를 포함하는,
캐스케이딩 검색을 수행하는 방법. - 제8항에 있어서,
상기 제1 부분은 분자 지문이고, 상기 제2 부분은 상기 분자 지문과 연관된 메타데이터인,
캐스케이딩 검색을 수행하는 방법. - 제8항에 있어서,
상기 제1 부분은 소스 어드레스 데이터를 포함하는 헤더이고, 상기 제2 부분은 상기 헤더와 연관된 페이로드인,
캐스케이딩 검색을 수행하는 방법. - 제8항에 있어서,
상기 제1 부분은 지문이고, 상기 제2 부분은 상기 지문과 연관된 메타데이터인,
캐스케이딩 검색을 수행하는 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230177740A KR20230170891A (ko) | 2019-05-19 | 2023-12-08 | 메모리 내 효율적인 다단계 검색 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962849913P | 2019-05-19 | 2019-05-19 | |
US62/849,913 | 2019-05-19 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230177740A Division KR20230170891A (ko) | 2019-05-19 | 2023-12-08 | 메모리 내 효율적인 다단계 검색 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200133667A KR20200133667A (ko) | 2020-11-30 |
KR102613523B1 true KR102613523B1 (ko) | 2023-12-12 |
Family
ID=73228489
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200057092A KR102613523B1 (ko) | 2019-05-19 | 2020-05-13 | 메모리 내 효율적인 다단계 검색 |
KR1020230177740A KR20230170891A (ko) | 2019-05-19 | 2023-12-08 | 메모리 내 효율적인 다단계 검색 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230177740A KR20230170891A (ko) | 2019-05-19 | 2023-12-08 | 메모리 내 효율적인 다단계 검색 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11520791B2 (ko) |
KR (2) | KR102613523B1 (ko) |
CN (1) | CN111966722A (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11520791B2 (en) | 2019-05-19 | 2022-12-06 | Gsi Technology Inc. | In-memory efficient multistep search |
US20210318805A1 (en) * | 2021-06-25 | 2021-10-14 | Intel Corporation | Method and apparatus to perform batching and striping in a stochastic associative memory to avoid partition collisions |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040083336A1 (en) | 2001-11-05 | 2004-04-29 | Hywire Ltd. | Multi-dimensional associative search engine having an external memory |
US20170316829A1 (en) | 2013-11-28 | 2017-11-02 | Gsi Technology Inc. | In-memory computational device with bit line processors |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6983274B2 (en) * | 2002-09-23 | 2006-01-03 | Aaron Thomas Patzer | Multiple alignment genome sequence matching processor |
US8238173B2 (en) | 2009-07-16 | 2012-08-07 | Zikbit Ltd | Using storage cells to perform computation |
US9898398B2 (en) * | 2013-12-30 | 2018-02-20 | Microsoft Technology Licensing, Llc | Re-use of invalidated data in buffers |
US9859005B2 (en) | 2014-01-12 | 2018-01-02 | Gsi Technology Inc. | Memory device |
US9767169B1 (en) * | 2014-09-26 | 2017-09-19 | Google Inc. | Enhancing search results for improved readability |
JP6592310B2 (ja) * | 2015-09-01 | 2019-10-16 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US10726016B2 (en) * | 2015-10-15 | 2020-07-28 | Oracle International Corporation | In-memory column-level multi-versioned global dictionary for in-memory databases |
WO2017163208A1 (en) * | 2016-03-23 | 2017-09-28 | Gsi Technology Inc. | In memory matrix multiplication and its usage in neural networks |
CN118468126A (zh) | 2016-07-17 | 2024-08-09 | Gsi 科技公司 | 在恒定的处理时间内查找k个极值 |
US20180341642A1 (en) * | 2016-07-17 | 2018-11-29 | Gsi Technology Inc. | Natural language processing with knn |
US10649670B2 (en) | 2016-09-16 | 2020-05-12 | International Business Machines Corporation | Data block processing |
US11520791B2 (en) | 2019-05-19 | 2022-12-06 | Gsi Technology Inc. | In-memory efficient multistep search |
-
2020
- 2020-05-06 US US16/867,607 patent/US11520791B2/en active Active
- 2020-05-13 KR KR1020200057092A patent/KR102613523B1/ko active IP Right Grant
- 2020-05-19 CN CN202010423479.5A patent/CN111966722A/zh active Pending
-
2022
- 2022-12-01 US US18/060,589 patent/US11989185B2/en active Active
-
2023
- 2023-12-08 KR KR1020230177740A patent/KR20230170891A/ko active Search and Examination
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040083336A1 (en) | 2001-11-05 | 2004-04-29 | Hywire Ltd. | Multi-dimensional associative search engine having an external memory |
US20170316829A1 (en) | 2013-11-28 | 2017-11-02 | Gsi Technology Inc. | In-memory computational device with bit line processors |
Also Published As
Publication number | Publication date |
---|---|
US11989185B2 (en) | 2024-05-21 |
US20230086370A1 (en) | 2023-03-23 |
KR20200133667A (ko) | 2020-11-30 |
KR20230170891A (ko) | 2023-12-19 |
US20200364228A1 (en) | 2020-11-19 |
CN111966722A (zh) | 2020-11-20 |
US11520791B2 (en) | 2022-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101648235B1 (ko) | 정합-데이터 보고 모듈을 갖는 패턴 인식 프로세서 | |
US11989185B2 (en) | In-memory efficient multistep search | |
US6678687B2 (en) | Method for creating an index and method for searching an index | |
US8533203B2 (en) | Identifying synonyms of entities using a document collection | |
CN110597855B (zh) | 一种数据查询方法、终端设备及计算机可读存储介质 | |
EP3292481B1 (en) | Method, system and computer program product for performing numeric searches | |
WO2021258848A1 (zh) | 数据字典生成方法、数据查询方法、装置、设备及介质 | |
Bauer et al. | Lightweight BWT construction for very large string collections | |
US9886476B2 (en) | Min/max query with synopsis guided scan order | |
CN111258966A (zh) | 一种数据去重方法、装置、设备及存储介质 | |
US11132345B2 (en) | Real time indexing | |
US20030158725A1 (en) | Method and apparatus for identifying words with common stems | |
CN108268596B (zh) | 搜索存储在存储器中的数据的方法和系统 | |
US20210056085A1 (en) | Deduplication of data via associative similarity search | |
Hasan et al. | Approximate string matching algorithms: a brief survey and comparison | |
CN111723286A (zh) | 一种数据处理的方法及装置 | |
Morishima et al. | Performance evaluations of document-oriented databases using GPU and cache structure | |
US9830355B2 (en) | Computer-implemented method of performing a search using signatures | |
Hu et al. | An efficient pruning strategy for approximate string matching over suffix tree | |
US12027238B2 (en) | Functional protein classification for pandemic research | |
US20240355426A1 (en) | Functional protein classification for pandemic research | |
CN118427397A (zh) | 词库检索方法、装置、设备及存储介质 | |
CN111339094A (zh) | 一种快速检索的方法、系统、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |