KR20230170891A - 메모리 내 효율적인 다단계 검색 - Google Patents

메모리 내 효율적인 다단계 검색 Download PDF

Info

Publication number
KR20230170891A
KR20230170891A KR1020230177740A KR20230177740A KR20230170891A KR 20230170891 A KR20230170891 A KR 20230170891A KR 1020230177740 A KR1020230177740 A KR 1020230177740A KR 20230177740 A KR20230177740 A KR 20230177740A KR 20230170891 A KR20230170891 A KR 20230170891A
Authority
KR
South Korea
Prior art keywords
search
column
similarity
matching
accuracy
Prior art date
Application number
KR1020230177740A
Other languages
English (en)
Inventor
아비단 아케립
Original Assignee
쥐에스아이 테크놀로지 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 쥐에스아이 테크놀로지 인코포레이티드 filed Critical 쥐에스아이 테크놀로지 인코포레이티드
Publication of KR20230170891A publication Critical patent/KR20230170891A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval 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)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Fuzzy 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

메모리 내 효율적인 다단계 검색{IN-MEMORY EFFICIENT MULTISTEP SEARCH}
본 출원은 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), 검색 결과 데이터 베이스(12) 및 정확성 검색 결과 데이터베이스(18)를 포함하는 캐스케이딩 검색 시스템(19)을 도시한다; 도 3은 멀티스테이지 검색에서 두번째 스테이지로 수행되는 정확성 검색의 단계를 도시한다.
검색 시스템(19)은 유사성 검색에 이어 정확성 검색을 수행할 수 있다. 초기에, 유사성 검색기(8)는 유사성 검색 쿼리에 대한 벡터 부분 중 하나에서 유사한 데이터를 가지는 유사성 검색 데이터베이스(10)로부터 후보 벡터를 찾기 위해 유사성 검색을 수행한다. 화학적 예시에서, 이는 분자 지문의 특징 검색일 수 있다. 이후, 유사성 검색기(8)는 유사성 검색 결과 벡터의 두 부분을 결과 데이터베이스(12)에 출력한다.
이어서, 검색 시스템(19)은 화학적 예시에서, 관련 메타데이터 또는 메타데이터의 소스에 대한 하나 이상의 포인터를 포함할 수 있는 후보 벡터의 제2 부분(3)의 정확성 검색을 수행한다.
도 3의 단계 21에서, 정확성 검색 데이터 회수기(17)는 검색 결과 데이터베이스(12)의 후보 벡터로부터 메타데이터 포인터를 회수한다. 이후 단계 23에서, 정확성 검색 데이터 검색기(17)는 이러한 메타데이터 포인터를 사용하여 정확성 검색 소스 데이터베이스(들)(20)로부터 메타데이터 자체를 회수하고, 단계 25에서, 이를 회수된 데이터 데이터베이스(15)에 추가한다. 다음으로, 단계 27에서, 정확성 검색기(9)는 회수된 데이터 데이터베이스(15)에서 메타데이터에 대해 정확성 검색을 수행한다. 마지막으로, 단계 29에서, 정확성 검색기(15)는 정확성 검색 결과를 출력한다.
검색 결과 데이터베이스(12)의 각 후보는 다수의 메타데이터 포인터를 포함할 수 있다. 결과적으로, 정확성 검색 데이터 회수기(17)는 다수의 정확성 검색 소스 데이터베이스(20)로부터 각각의 메타데이터 블록을 개별적으로 회수하고, 이를 정확성 검색 데이터베이스(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의 정확성 검색 시스템의 대안적인 실시예의 개략도이다.
예시의 단순성 및 명료성을 위해, 도면에 도시된 요소는 반드시 비례적으로 도시된 것은 아님을 이해할 것이다. 예를 들어, 일부 요소의 치수는 명확성을 위해 다른 요소에 비해 과장될 수 있다. 또한, 적절한 것으로 간주되는 경우, 대응하거나 유사한 요소를 나타내기 위해 도면들 사이에서 도면 부호가 반복될 수 있다.
이하의 상세한 설명에서, 본 발명의 철저한 이해를 제공하기 위해 다수의 특정 세부 사항들이 기술된다. 그러나, 본 발명은 이러한 특정 세부 사항 없이도 실시될 수 있다는 것을 통상의 기술자들은 이해할 것이다. 다른 경우에, 잘 알려진 방법, 절차, 및 구성 요소는 본 발명을 모호하게 하지 않기 위해 상세히 기술되지 않았다.
출원인은 캐스케이딩 검색의 경우, 초기 유사성 검색에 이어, 메타데이터의 회수, 두번째로 메타데이터의 정확성 검색을 하는 것은 복잡하고 계산 비용이 많이 든다는 것을 깨달았다.
각각의 캐스케이딩 검색은 첫번째 유사성 검색으로 매우 많은 수의 후보 벡터를 반환할 수 있다. 이러한 유사성 매칭 후보 각각에 대해, 검색 시스템은 그들의 메타데이터 부분에서 모든 메타데이터 포인터를 찾고, 표시된 메타데이터 소스를 찾고, 메타데이터를 메모리에 다운로드하며, 메타데이터를 검색 프로세서에 전송하고, 검색을 수행하고 결과를 저장해야 한다. 결과적으로, 캐스케이딩 검색은 느리고, 비싸며, 수행하기 어렵다.
또한, 출원인은 대용량 데이터베이스의 효율적인 다단계 검색이, 2012년 8월 7일자 미국 특허 제 8,238,173호(“저장 셀을 사용하여 계산을 수행하는 것”); 2018년 1월 2일자 미국 특허 제 9,859,005호(“메모리 디바이스”); 2018년 12월 11일자 미국 특허 제 10,153,042호(“비트 라인 프로세서를 가지는 메모리 내 계산 디바이스”); 및 2017년 7월 13일자 출원되어서 출원인에게 양도되고 원용에 의해 본원에 포함되는 미국 특허 출원 제 15/648,475호(“K-MIN을 가지는 NLP”)에 기술된 연관 메모리 저장 장치 및 연관 처리 유닛을 사용함으로써 효율적으로 수행될 수 있음을 인식하였다. 더욱이, 이러한 검색은 한 유형의 검색에서 다른 유형으로의 입력/출력(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)에 로딩될 수 있다. 유사성 매칭 프로세서(38)는 유사성 검색 쿼리를 수신할 수 있고, 칼럼(22) 상에서 유사성 검색을 병렬로 수행할 수 있어서, 어떤 칼럼이 유사성이 매칭되고 어떤 칼럼이 유사성이 매칭되지 않는지 표시하는 비트 표시를 포함하는 칼럼 당 매칭 결과를 생성한다. 유사성 매칭 프로세서(38)는 이들 결과를 어레이(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 (10)

  1. 캐스케이딩 검색(cascading search)을 수행하기 위한 시스템으로서,
    각 칼럼의 제1 섹션, 각 칼럼의 제2 섹션, 및 각 칼럼의 매칭 로우로 분리된 칼럼들을 갖는 연관 메모리 어레이로서, 상기 매칭 로우는 상기 제2 섹션의 LSB(last significant bit; 최하위 비트) 위치에 위치하고, 상기 연관 메모리 어레이는 복수의 다중 부분 데이터 벡터를 저장하고, 개별 칼럼에 저장된 상기 다중 부분 데이터 벡터 각각은 상기 개별 칼럼의 상기 제1 섹션에 저장된 제1 부분 및 상기 개별 칼럼의 상기 제2 섹션에 저장된 제2 부분을 갖는, 상기 연관 메모리 어레이;
    각 칼럼의 상기 제1 섹션 내의 유사성 쿼리(similarity query)의 병렬 유사성 검색을 수행하고, 상기 칼럼의 상기 매칭 로우 내 각 칼럼에 대한 매칭 비트 표시를 저장하는 유사성 매칭 프로세서 - 각 매칭 비트 표시는 그것의 칼럼이 상기 유사성 쿼리에 매칭되는 제1 부분을 갖는지를 표시함 - ; 및
    정확성 검색 쿼리에 대해 LSB로 추가된 검색 비트를 갖는 수정된 정확성 검색 쿼리를 수신하고, 각 칼럼의 상기 제2 섹션에서 상기 수정된 정확성 쿼리의 정확성 검색을 병렬로 수행하고, 상기 수정된 정확성 쿼리에 매칭되는 상기 유사성 매칭된 칼럼을 출력하는 정확성 매칭 프로세서를 포함하는,
    캐스케이딩 검색을 수행하기 위한 시스템.
  2. 제1항에 있어서,
    상기 유사성 매칭 프로세서는 타니모토(Tanimoto) 검색, 해밍(Hamming) 검색, L1 검색, L2 검색, 및 제커드 검색(Jaccard search) 중 하나인 유사성 메트릭을 이용하는,
    캐스케이딩 검색을 수행하기 위한 시스템.
  3. 제1항에 있어서,
    상기 제1 부분은 분자 지문(molecular fingerprint)이고, 상기 제2 부분은 상기 분자 지문과 연관된 메타데이터(metadata)인,
    캐스케이딩 검색을 수행하기 위한 시스템.
  4. 제1항에 있어서,
    상기 제1 부분은 소스 어드레스 데이터를 포함하는 헤더이고, 상기 제2 부분은 상기 헤더와 연관된 페이로드(payload)인,
    캐스케이딩 검색을 수행하기 위한 시스템.
  5. 제1항에 있어서,
    상기 제1 부분은 지문이고, 상기 제2 부분은 상기 지문과 연관된 메타데이터인,
    캐스케이딩 검색을 수행하기 위한 시스템.
  6. 캐스케이딩 검색을 수행하는 방법으로서,
    각 칼럼의 제1 섹션, 각 칼럼의 제2 섹션 및 각 칼럼의 매칭 로우로 분리된 칼럼들을 갖는 연관 메모리 어레이 내에서, 상기 매칭 로우는 상기 제2 섹션의 LSB(least significant bit; 최하위 비트) 위치에 위치하고, 상기 연관 메모리 어레이가 복수의 다중 부분 데이터 벡터를 저장하는 단계 - 개별 칼럼에 저장된 상기 다중 부분 데이터 벡터 각각은 상기 개별 칼럼의 상기 제1 섹션에 저장된 제1 부분 및 상기 개별 칼럼의 상기 제2 섹션에 저장된 제2 부분을 갖음 - ;
    각 칼럼의 상기 제1 섹션 내에서 유사성 쿼리의 병렬 유사성 검색을 수행하는 단계;
    상기 칼럼의 상기 매칭 로우에 각 칼럼에 대한 매칭 비트 표시를 저장하는 단계 - 상기 매칭 비트 표시 각각은 그것의 칼럼이 상기 유사성 쿼리에 매칭되는 제1 부분을 갖는지를 표시함 - ;
    정확성 검색 쿼리에 대해 LSB로 추가된 검색 비트를 갖는 수정된 정확성 검색 쿼리를 수신하는 단계;
    각 칼럼의 상기 제2 섹션에서 수정된 정확성 쿼리의 정확성 검색을 병렬로 수행하는 단계; 및
    상기 수정된 정확성 쿼리에 매칭되는 유사성 매칭된 칼럼들을 출력하는 단계를 포함하는,
    캐스케이딩 검색을 수행하는 방법.
  7. 제6항에 있어서,
    상기 유사성 검색은 타니모토 검색, 해밍 검색, L1 검색, L2 검색, 및 제커드 검색 중 하나인 유사성 메트릭을 이용하는,
    캐스케이딩 검색을 수행하는 방법.
  8. 제6항에 있어서,
    상기 제1 부분은 분자 지문이고, 상기 제2 부분은 상기 분자 지문과 연관된 메타데이터인,
    캐스케이딩 검색을 수행하는 방법.
  9. 제6항에 있어서,
    상기 제1 부분은 소스 어드레스 데이터를 포함하는 헤더이고, 상기 제2 부분은 상기 헤더와 연관된 페이로드인,
    캐스케이딩 검색을 수행하는 방법.
  10. 제6항에 있어서,
    상기 제1 부분은 지문이고, 상기 제2 부분은 상기 지문과 연관된 메타데이터인,
    캐스케이딩 검색을 수행하는 방법.
KR1020230177740A 2019-05-19 2023-12-08 메모리 내 효율적인 다단계 검색 KR20230170891A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962849913P 2019-05-19 2019-05-19
US62/849,913 2019-05-19
KR1020200057092A KR102613523B1 (ko) 2019-05-19 2020-05-13 메모리 내 효율적인 다단계 검색

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020200057092A Division KR102613523B1 (ko) 2019-05-19 2020-05-13 메모리 내 효율적인 다단계 검색

Publications (1)

Publication Number Publication Date
KR20230170891A true KR20230170891A (ko) 2023-12-19

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 Before (1)

Application Number Title Priority Date Filing Date
KR1020200057092A KR102613523B1 (ko) 2019-05-19 2020-05-13 메모리 내 효율적인 다단계 검색

Country Status (3)

Country Link
US (2) US11520791B2 (ko)
KR (2) KR102613523B1 (ko)
CN (1) CN111966722A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
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

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076602B2 (en) * 2001-11-05 2006-07-11 Hywire Ltd. Multi-dimensional associative search engine having an external memory
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
US10153042B2 (en) * 2013-11-28 2018-12-11 Gsi Technology Inc. In-memory computational device with bit line processors
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
CN109074845B (zh) * 2016-03-23 2023-07-14 Gsi 科技公司 存储器内矩阵乘法及其在神经网络中的使用
US20180341642A1 (en) * 2016-07-17 2018-11-29 Gsi Technology Inc. Natural language processing with knn
CN108351974A (zh) 2016-07-17 2018-07-31 Gsi 科技公司 在恒定的处理时间内查找k个极值
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

Also Published As

Publication number Publication date
US11520791B2 (en) 2022-12-06
KR20200133667A (ko) 2020-11-30
US11989185B2 (en) 2024-05-21
US20200364228A1 (en) 2020-11-19
US20230086370A1 (en) 2023-03-23
KR102613523B1 (ko) 2023-12-12
CN111966722A (zh) 2020-11-20

Similar Documents

Publication Publication Date Title
KR101648235B1 (ko) 정합-데이터 보고 모듈을 갖는 패턴 인식 프로세서
US11989185B2 (en) In-memory efficient multistep search
US7636703B2 (en) Method and apparatus for approximate pattern matching
US8533203B2 (en) Identifying synonyms of entities using a document collection
US10025773B2 (en) System and method for natural language processing using synthetic text
Bauer et al. Lightweight BWT construction for very large string collections
EP3292481B1 (en) Method, system and computer program product for performing numeric searches
US20020059281A1 (en) Method for creating an index and method for searching an index
CN110597855B (zh) 一种数据查询方法、终端设备及计算机可读存储介质
CN111258966A (zh) 一种数据去重方法、装置、设备及存储介质
WO2021258848A1 (zh) 数据字典生成方法、数据查询方法、装置、设备及介质
US11126621B1 (en) Database methodology for searching encrypted data records
US11132345B2 (en) Real time indexing
CN111801665A (zh) 用于大数据应用的分层局部敏感哈希(lsh)分区索引
US20030158725A1 (en) Method and apparatus for identifying words with common stems
CN108268596B (zh) 搜索存储在存储器中的数据的方法和系统
US20240126818A1 (en) Data filtering methods and apparatuses for data queries
US20210056085A1 (en) Deduplication of data via associative similarity search
Morishima et al. Performance evaluations of document-oriented databases using GPU and cache structure
Hasan et al. Approximate string matching algorithms: a brief survey and comparison
US9830355B2 (en) Computer-implemented method of performing a search using signatures
US20230138113A1 (en) System for retrieval of large datasets in cloud environments
CN114238334A (zh) 异构数据编码、解码方法和装置、计算机设备和存储介质
Hu et al. An efficient pruning strategy for approximate string matching over suffix tree

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination