Efficient multi-step search in memory

By aligning the first and second portions of a multipart data vector in an associative memory array, generating matching bit indicators using similarity search, and performing an exact search only in columns with similarity matches, the problem of complex and computationally expensive cascade search processes is solved, achieving efficient multi-step search.

CN111966722BActive Publication Date: 2025-11-11GSI TECHNOLOGY INC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202010423479.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-05-19
Filing Date
2020-05-19
Publication Date
2025-11-11
Estimated Expiration
2040-05-19

AI Technical Summary

Technical Problem

In existing technologies, the cascading search process is complex and computationally expensive, especially since multiple searches are required in the metadata of a large number of candidate vectors after the initial similarity search, resulting in slow and costly searches.

Method used

By employing an associative memory array and processing unit, matching bit indicators are generated using similarity search by aligning the first and second parts of a multipart data vector in the same column. Exact searches are performed only in columns where similarity matches, and modified exact search queries are used to reduce subsequent search time.

Benefits of technology

It significantly reduces cascade search time, improves search efficiency, reduces the number of metadata retrievals for candidate vectors, and lowers computational costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN111966722B_ABST
    Figure CN111966722B_ABST
Patent Text Reader

Abstract

A system for performing cascading searches includes an associative memory array, a controller, a similarity search processor, and an exact match processor. The associative memory array stores multiple multipart data vectors in at least one column. Each vector has a first part and a second part aligned with each other in that column. The controller controls the associative memory array to perform a similarity search for the first parts and an exact match search for the second parts. The similarity match processor generates a matching row including matching bits aligned with each similarity-matching column. The matching row indicates which columns have a first part that matches the similarity query. The exact match processor outputs exact match columns from the similarity-matching columns that have a second part that matches the exact query.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references to related applications

[0002] This application claims priority and interest in U.S. Provisional Patent Application 62 / 849,913, filed May 19, 2019, which is incorporated herein by reference. Technical Field

[0003] This invention relates generally to searching, and more specifically to efficient methods for searching data and metadata. Background Technology

[0004] With the advent of the internet and the development of search engines such as Google, Bing, and DuckDuckGo, the term "search" has become ubiquitous. These internet search engines take text-based queries, compare them with website content and metadata, and return matches based on their own ranking systems. This keyword search is also known as exact search.

[0005] While exact searches are perhaps the most common type of search, they are not the only type of search performed by computers. Network administrators worry that hackers might compromise their communications and computer networks. Hackers might attempt to inject malicious code into the network by exploiting vulnerabilities in devices or applications. By comparing the injected code to known types of intrusions, they can identify such malicious payloads and remove them from the network. Chemists might want to compare newly developed molecules with other known molecules to try to understand how they react or dissolve. This type of search is called a similarity search and can be based on artificial intelligence (AI) methods. Similarity search metrics compare features present in the fingerprint of a query molecule with features present in the fingerprints of candidate molecules. Examples of such metrics are Tanimoto, Hamming, L1, L2, or Jaccard searches. Chemistry frequently uses the Tanimoto metric to quantify the similarity between molecular fingerprints.

[0006] Now for reference Figure 1 The diagram illustrates a multipart vector 1 divided into two parts: a first part 2 and a second part 3. A multipart vector can include more than one type of data; therefore, in the network administrator example, the first part 2 could be a header including addressing and transmission information, and the second part 3 could be a payload including files or other data. In the chemical example, the first part 2 could include a molecular fingerprint, and the second part 3 could include metadata or metadata pointers associated with the molecular fingerprint. The first part 2 can have the same or different dimensions as the second part 3.

[0007] Given such a multipart vector, a searcher can utilize an iterative search, which uses an initial search of one of the parts of the multipart vector to form a target group. The target group itself can then be searched using a second part of the multipart vector. This iterative search is called a multi-stage search or cascaded search, where search i gives its result to search i+1, and is a common and well-known task. Cascaded searches have been utilized in previous network and chemical examples; however, the type of search used and the parts searched may differ. Similarity searches may target known malicious code or intrusion types. Subsequently, a network administrator can perform a precise search on the second part 3 against the known source address of such a hacker, where the second part 3 may in this case be a header containing address information. In the chemical example, a set of molecules can be discovered using a similarity search on the first part 2, which includes molecular fingerprints; then, a subsequent precise search, such as a keyword search, can be performed on the metadata in the second part 2 or metadata retrieved from a source indicated by a pointer to the metadata in the second part 2.

[0008] It should be understood that in the network administrator example, the initial similarity search is performed on part 2, but in the chemistry example, the similarity search is performed on part 1, 2.

[0009] Now refer to Figures 2 and 3. Figure 2 shows a cascaded search system 19, which includes a similarity searcher 8, a similarity search database 10, a search results database 12, a precision searcher 9, a precision search data retrievaler 17, a retrieved data database 15, and a precision search source database 18; Figure 3 shows the steps of the precision search performed as the second stage of a multi-stage search.

[0010] Search system 19 can perform a similarity search, and then a precise search. Initially, similarity searcher 8 performs a similarity search to find candidate vectors from similarity search database 10, which have data similar to the similarity search query in one of their vector portions. In a chemical example, this could be a feature search of molecular fingerprints. Then, similarity searcher 8 outputs both portions of the similarity search result vector to results database 12.

[0011] Subsequently, the search system 19 performs a precise search on the second part 3 of the candidate vector, which, in the chemical example, may contain relevant metadata or one or more pointers to the source of the metadata.

[0012] In step 21 of Figure 3, the precise search data retrieval unit 17 retrieves metadata pointers from candidate vectors in the search results database 12. In step 23, the precise search data retrieval unit 17 then uses these metadata pointers to retrieve the metadata itself from the precise data in the precise search source database 18, and adds it to the retrieval data database 15 in step 25. Next, in step 27, the precise searcher 9 performs a precise search on the metadata in the retrieval data database 15. Finally, in step 29, the precise searcher 15 outputs the precise search results.

[0013] Each candidate in the search results database 12 may contain multiple metadata pointers. As a result, the precise search data retriever 17 may need to individually retrieve each metadata block from multiple precise search source databases 18 and add them to the retrieval data database 15. The precise searcher 8 will then perform a search on each metadata block.

[0014] Then, for each candidate in the search results database 15 and for all associated metadata pointers, the entire metadata retrieval process is repeated. Summary of the Invention

[0015] According to a preferred embodiment of the present invention, a system for performing cascading searches is provided. The system includes an associative memory array, a controller, a similarity search processor, and an exact match processor. The associative memory array stores a plurality of multipart data vectors. Each multipart data vector is stored in at least one column of the associative memory array and has a first part and a second part. The first part and the second part are aligned with each other in the at least one column. The controller controls the associative memory array to perform a similarity search for the first part and an exact match search for the second part. The similarity match processor generates a matching row including a matching bit indication aligned with each similarity-matching column. The matching row indicates which columns have a first part that matches the similarity query. The exact match processor outputs exact match columns from the similarity-matching columns as indicated by the matching row. The exact match columns have a second part that matches the exact query.

[0016] Furthermore, according to a preferred embodiment of the invention, the similarity matching processor utilizes similarity metrics, such as Tanimoto search, Hamming search, L1 search, L2 search, or Jaccard search.

[0017] Furthermore, according to a preferred embodiment of the invention, the precise matching processor searches for matching bits in the matching row that indicate a similarity match in the column.

[0018] Furthermore, according to a preferred embodiment of the invention, the controller generates a modified exact search query by appending a search bit to the exact search query at the same bit position as the matching bit of the column indicating similarity matching and with the same bit value as the matching bit.

[0019] Furthermore, according to a preferred embodiment of the present invention, the first part is a molecular fingerprint and the second part is metadata associated with the molecular fingerprint, or the first part is a header containing source address data and the second part is a payload associated with the header, or the first part is a fingerprint and the second part is metadata associated with the fingerprint.

[0020] According to a preferred embodiment of the present invention, a method for performing a cascaded search is also provided. The method includes storing a plurality of multipart data vectors in an associative memory array, each multipart data vector being stored in at least one column of the associative memory array, and each multipart data vector having a first part and a second part, wherein the first part and the second part are aligned with each other in at least one column; performing a similarity search for a similarity query on the first part and an exact search for an exact query on the second part; generating a matching row including a matching bit indication aligned with each similarity-matching column, the matching row indicating which columns have a first part that matches the similarity query; and searching for exact matching columns in the similarity-matching columns indicated by the matching row that have a second part that matches the exact query.

[0021] In addition, similarity search utilizes similarity measures from Tanimoto search, Hamming search, L1 search, L2 search, or Jaccard search.

[0022] Furthermore, according to a preferred embodiment of the invention, the method includes searching in the matching row for matching bits of columns indicating similarity matching.

[0023] Furthermore, according to a preferred embodiment of the invention, the method includes generating a modified exact search query by appending a search bit to the exact search query at the same bit position as the matching bit of the column indicating similarity matching and with the same bit value as the matching bit. Attached Figure Description

[0024] The subject matter considered inventive is specifically pointed out and explicitly claimed in the conclusion of the specification. However, the organization and operation of the invention, as well as its objects, features, and advantages, can be best understood by referring to the following detailed description when read in conjunction with the accompanying drawings.

[0025] Figure 1 It is a schematic diagram of a multi-part vector;

[0026] Figure 2 is a schematic diagram of a cascaded search system in the prior art;

[0027] Figure 3 is a flowchart of the exact search method;

[0028] Figure 4 This is a schematic diagram of an associative memory array;

[0029] Figure 5 Is with Figure 4 A schematic diagram of a similarity search system that operates together with an associated memory array;

[0030] Figure 6 Is with Figure 4 A schematic diagram of a precise search system that operates together with an associative memory array; and

[0031] Figure 7 It utilizes modified search queries. Figure 6 A schematic diagram of an alternative embodiment of the precise search system.

[0032] It should be understood that, for the sake of simplicity and clarity, the elements shown in the figures are not necessarily drawn to scale. For example, for clarity, the dimensions of some elements may be enlarged relative to others. Furthermore, where deemed appropriate, reference numerals may be repeated between figures to indicate corresponding or similar elements. Detailed Implementation

[0033] In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, those skilled in the art will understand that the invention can be practiced without these specific details. In other instances, well-known methods, processes, and components have not been described in detail so as not to obscure the invention.

[0034] The applicant has realized that cascading searches, initial similarity searches, then metadata retrieval, and then a second precise search of such metadata, are complex and computationally expensive.

[0035] Each cascade search can return a large number of candidate vectors from its first similarity search. For each of those similarity-matching candidates, the search system must find all metadata pointers in its metadata section, locate the indicated metadata source, download the metadata to memory, transfer the metadata data to the search processor, execute the search, and store the results. As a result, cascade searches are slow, expensive, and difficult to execute.

[0036] The applicant further recognizes that efficient multi-step searches of very large databases can be performed efficiently by using the associative memory storage devices and associative processing units described in the following documents: U.S. Patent No. 8,238,173, published August 7, 2012 (titled "USING STORAGE CELLS TO PERFORM COMPUTATION"); U.S. Patent No. 9,859,005, published January 2, 2018 (titled "MEMORY DEVICE"); U.S. Patent No. 10,153,042, published December 11, 2018 (titled "IN-MEMORY COMPUTATIONAL DEVICE WITH BIT LINEPROCESSORS"); U.S. Patent No. 15 / 648,475, filed July 13, 2017 (titled "NLP WITH K-MINs"), and U.S. Patent No. 10 / 929,751, published February 23, 2021 (titled "FINDING K EXTREMEVALUES IN The U.S. patent application “Constant Processing Time”, assigned to the applicant and incorporated herein by reference, states that such a search eliminates input / output (IO) time from one type of search to another, thereby reducing search time by several orders of magnitude.

[0037] Associative memory arrays store data in parallel columns. Regardless of the number of columns, associative memory computing units, called associative processing units (APUs), can operate simultaneously on all such columns with a constant processing time. APUs can be used to perform simple Boolean logic functions and complex search functions on the data in the columns.

[0038] Now for reference Figure 4 This is a schematic diagram of an associative memory array 20 containing a large number of data columns 22, where each column stores a multipart data vector 1 including a first part 2 and a second part 3. Typically, one part can be stored in a part 31 of the associative memory array 20, while the associated second part is stored in a second part 33 of the associative memory array 20. In a molecular example, the first part 2 may be a molecular fingerprint, and the second part 3 may be metadata. In a network example, the first part 2 may be a packet payload, and the second part 3 may be a packet header.

[0039] According to a preferred embodiment of the invention, the two parts of the multipart vector 1 are aligned in the same column of the associative memory array. Figure 4 In the example, the first part 2 is stored in the upper part of the associated memory column 22, and the second part 3 is in the lower part of the associated memory column 22.

[0040] Now for reference Figure 5 and Figure 6 Together, they illustrate a multi-stage similarity search system implemented in the associative memory array 20. The search system includes a large number of data columns 22, a controller 26, a similarity matching processor 32, and an exact matching processor 38 (in... Figure 6 (as described in detail above) and matching row 34. Data sections 2 and 3 can be loaded into memory column 22 as described above. Figure 6 The precise search portion of the similarity search system is described in detail, and data column 22, controller 26, precise matching processor 38, and matching row 34 are shown.

[0041] As described above, the first part 2 and the second part 3 can be loaded into memory column 22. The similarity matching processor 32 can receive similarity search queries and can perform similarity searches in parallel on column 22 to generate matching results for each column, each matching result containing bit indications of which columns were matched and which were not. The similarity matching processor 32 can write these results into matching rows 34 in the lower part of array 20. It should be understood that each bit indication in matching row 34 can be aligned with the column associated with it.

[0042] The applicant has realized that, since the first part 2 is aligned with the second part 3, the similarity matching processor 32 can write the matching line 34 several orders of magnitude faster than if they were not aligned.

[0043] The applicant further recognizes that, since the two parts of data vector 1 are aligned in the same associative memory column, the described parallel column search and write match indications significantly reduce cascade search time.

[0044] like Figure 6 As shown, the exact match processor 38 can receive an exact search query and can perform an exact search only on those vectors in the associated memory column 22 that have a match bit indication in the match row 34. The exact match processor 38 then outputs the exact match result.

[0045] The applicant further realized that the exact search could be limited to columns that match the similarity search by utilizing the match bit indication in the modified metadata query 36 and matching row 34.

[0046] In this alternative embodiment (now referred to) Figure 7In the diagram, controller 26 can append search bit 40 to the exact search query. Search bit 40 can have the same bit value as matching bit 34 and can be located at the same bit position as the matching row 34 of the second part 3 of the multipart vector 1 appended to the associative memory array 22.

[0047] For example, if search bit 40 is positioned as the least significant bit (LSB) of an exact search query, and matching row 34 is positioned as the LSB of the second part 3 of the multipart candidate vector 1, then exact match processor 38 can utilize search bit 40 as the LSB portion of a modified exact search query for the combination of the lower part of data column 22 and matching row 34. It will be understood that by appending search bit 40, only columns with match bit indications in matching row 34 can be matched by exact match processor 38.

[0048] It will be further understood that when searching a large number of candidate vectors (e.g., 32k or 64k), using a modified search query to restrict subsequent exact searches to only those vectors with similarity matches can further reduce the time of subsequent exact searches.

[0049] It will be further recognized that, since all metadata of all candidate vectors has been preloaded and aligned, cascading searches of multiple individuals can be performed very quickly between the first and second searches without stopping and downloading metadata associated with the matching first search result.

[0050] Although certain features of the invention have been shown and described herein, many modifications, substitutions, alterations, and equivalents will now occur to those skilled in the art. Therefore, it should be understood that the appended claims are intended to cover all such modifications and alterations falling within the true spirit of the invention.

Claims

1. A system for performing a cascading search, the system comprising: An associative memory array divides parallel columns into a first part and a second part of each column, and stores multiple multipart data vectors, each of which is stored in a separate column and has a first part and a second part, wherein the first part of each multipart data vector is stored in the first part of the separate column and the second part of each multipart data vector is stored in the second part of the separate column; A controller that controls the associative memory array to perform a similarity search for the first portion of each column and an exact search for the second portion of each column; A similarity matching processor is configured to generate in the associated memory array a matching row including a matching bit indication aligned with each similarity match column, the matching row indicating which columns have a first portion that matches the similarity query; as well as An exact match processor is configured to output an exact match column from the similarity match column as indicated by the match row, the exact match column having a second portion that matches the exact query.

2. The system according to claim 1, wherein, The similarity matching processor utilizes a similarity metric that is one of the following: Tanimoto search, Hamming search, L1 search, L2 search, and Jaccard search.

3. The system according to claim 1, wherein, The precise matching processor is used to search for matching bits in the matching row that indicate a similarity match in the column.

4. The system according to claim 1, wherein, The controller is configured to generate a modified exact search query by appending a search bit to the exact search query at the same bit position as the matching bit in the column indicating similarity matching and with the same bit value as the matching bit.

5. The system according to claim 1, wherein, The first part is a molecular fingerprint, and the second part is metadata associated with the molecular fingerprint.

6. The system according to claim 1, wherein, The first part is a header containing source address data, and the second part is a payload associated with the header.

7. The system according to claim 1, wherein, The first part is a fingerprint, and the second part is metadata associated with the fingerprint.

8. A method for performing a cascading search, the method comprising: In an associative memory array, parallel columns are divided into a first part and a second part of each column. The associative memory array stores multiple multipart data vectors, each of which is stored in a separate column and has a first part and a second part. The first part of each multipart data vector is stored in the first part of the separate column, and the second part of each multipart data vector is stored in the second part of the separate column. Perform a similarity search for the first part of each column and an exact search for the second part of each column; A matching row is generated in the associated memory array, the matching row including a matching bit indication aligned with the column of each similarity match, the matching row indicating which columns have a first part that matches the similarity query; as well as Search for an exact match column in the similarity match column indicated by the matching row, the exact match column having a second part that matches the exact query.

9. The method according to claim 8, wherein, The similarity search utilizes a similarity measure of one of the following: Tanimoto search, Hamming search, L1 search, L2 search, and Jaccard search.

10. The method of claim 8, further comprising: Search the matching rows for matching bits in columns that indicate similarity matches.

11. The method of claim 8, further comprising generating the modified exact search query by appending search bits to the exact search query at the same bit position as the matching bits of the column indicating similarity matching and with the same bit value as the matching bits.

12. The method according to claim 8, wherein, The first part is a molecular fingerprint, and the second part is metadata associated with the molecular fingerprint.

13. The method according to claim 8, wherein, The first part is a header containing source address data, and the second part is a payload associated with the header.

14. The method according to claim 8, wherein, The first part is a fingerprint, and the second part is metadata associated with the fingerprint.

Citation Information

Patent Citations

  • In-memory computational device with bit line processors

    US10153042B2

  • Using storage cells to perform computation

    US8238173B2

  • Memory device

    US9859005B2

  • Method and apparatus for content item signature matching

    CN1957310A

  • KR20190008514A