IP Library › Granted Patent US 12,645,676
Granted Patent B1
US 12,645,676 · App. 18/964,613 · Granted Jun 2, 2026

Computational storage device, computational storage system and operation method for DiskANN search

Inventors: Wei-Cheng Su (New Taipei City, TW); Chih-Hsiang Yang (New Taipei City, TW); Hsiang-Lan Lung (Hsinchu, TW)
Assignee: MACRONIX INTERNATIONAL CO., LTD.
G06F16/24553G06F16/2228G06F16/248
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,645,676
App. No.
18/964,613
Granted
Jun 2, 2026
Kind
B1
Abstract

A computational storage device for executing DiskANN search is provided by an aspect of the present disclosure. The computational storage device comprises a NAND memory array configured to storage node chunks corresponding to nodes in the DiskANN. The computational storage device also comprises a non-volatile memory array configured to store multiple product quantization (PQ) vectors corresponding to the nodes of the node chunks. The computational store device also comprises a processing unit coupled to the NAND memory array and the non-volatile memory array. The processing unit configured to execute DiskANN search (DiskANNs) among the node chunks in the NAND memory array and the multiple PQ vectors in the non-volatile memory array according to a received search instruction, and output a search result.

Claims (53)

1 . A computational storage device for disk approximate nearest neighbor (DiskANN) search, comprising:

a NAND memory array, configured to store a plurality of node chunks corresponding to a plurality of nodes of the DiskANN;

a non-volatile memory array, configured to store a plurality of product quantization (PQ) vectors corresponding to the plurality of nodes in the plurality of node chunks; and

a processor unit, coupled to the NAND memory array and the non-volatile memory array,

wherein the processor unit is configured to:

execute DiskANN search among the plurality of node chunks in the NAND memory array and the plurality of PQ vectors in the non-volatile memory array according to a received search instruction, and output a search result,

wherein the non-volatile memory array is a phase change memory (PCM) array, a NOR memory array, a 3D NOR memory array, a magnetoresistive random access memory (MRAM) array or a resistive random access memory (RRAM) array,

wherein each of the plurality of node chunks comprises a node vector data, a number of neighboring nodes, and a plurality of identifiers of neighboring nodes, of each of the plurality of nodes.

2 . The computational storage device according to claim 1 , wherein the processor unit executing DiskANN search while receiving the search instruction comprises:

comparing a graph index corresponding to the plurality of node chunks, with a query condition of the search instruction, to obtain a near node of the plurality of nodes, in the plurality of node chunks, corresponding to comparison of the graph index;

based on respective identifiers of neighboring nodes of the near node, in the plurality of node chunks stored in the NAND memory array, obtaining a plurality of respective PQ vectors of neighboring nodes corresponding to the respective identifiers of neighboring nodes of the near node, from the plurality of PQ vectors stored in the non-volatile memory array;

comparing the plurality of respective PQ vectors of the neighboring nodes of the near node for obtaining a nearest node nearest to the query condition, from the neighboring nodes; and

using the nearest node as the near node and repeating the above steps until k nodes nearest to the query condition are obtained, which search result includes the k nodes as a Top-K search result,

wherein k is an integer greater than or equal to one.

3 . The computational storage device according to claim 2 , wherein the graph index stores in the non-volatile memory array.

4 . The computational storage device according to claim 2 , further comprising a dynamic memory array coupled to the processing unit and configured to store the graph index.

5 . The computational storage device according to claim 2 ,

wherein the dynamic memory array is a dynamic random-access memory (DRAM) array.

6 . A computational storage system for DiskANN search, comprising:

a computational storage device, comprising:

a NAND memory array, configured to store a plurality of node chunks corresponding to a plurality of nodes of the DiskANN; and

a processor unit, coupled to the NAND memory array; and

a non-volatile memory device including a non-volatile memory array configured to store a plurality of PQ vectors corresponding to the plurality of nodes in the plurality of node chunks; and

wherein the non-volatile memory device is coupled to the processor unit, and the processor unit is configured to:

execute DiskANN search among the plurality of node chunks in the NAND memory array of the computational storage device and the plurality of PQ vectors in the non-volatile memory array of the non-volatile memory device according to a received search instruction, and output a search result,

wherein the non-volatile memory array is a PCM array, a NOR memory array, a 3D NOR memory array, a MRAM array or a RRAM array,

wherein each of the plurality of node chunks comprises a node vector data, a number of neighboring nodes, and a plurality of identifiers of neighboring nodes, of each of the plurality of nodes.

7 . The computational storage system according to claim 6 , wherein the processor unit executing DiskANN search while receiving the search instruction comprises:

comparing a graph index corresponding to the plurality of node chunks, with a query condition of the search instruction, to obtain a near node of the plurality of nodes, in the plurality of node chunks, corresponding to comparison of the graph index;

based on respective identifiers of neighboring nodes of the near node, in the plurality of node chunks stored in the NAND memory array, obtaining a plurality of respective PQ vectors of neighboring nodes corresponding to the respective identifiers of neighboring nodes of the near node, from the plurality of PQ vectors stored in the non-volatile memory array;

comparing the plurality of respective PQ vectors of the neighboring nodes of the near node for obtaining a nearest node nearest to the query condition, from the neighboring nodes; and

using the nearest node as the near node and repeating the above steps until k nodes nearest to the query condition are obtained, which search result includes the k nodes as a Top-K search result,

wherein k is an integer greater than or equal to one.

8 . The computational storage system according to claim 7 , wherein the graph index stores in the non-volatile memory array.

9 . The computational storage system according to claim 7 , wherein the computational storage device further comprises a dynamic memory array coupled to the processing unit and configured to store the graph index.

10 . The computational storage system according to claim 9 ,

wherein the dynamic memory array is a DRAM array.

11 . An operation method for a memory device, comprising:

storing a plurality of node chunks of a plurality of nodes generated by a DiskANN regarding a database, in a NAND memory array of the memory device;

storing a plurality of PQ vectors corresponding to the plurality of nodes in the plurality of node chunks, in a non-volatile memory array of the memory device; and

executing, by a processing unit of the memory device, a DiskANN search among the plurality of node chunks in the NAND memory array and the plurality of PQ vectors in the non-volatile memory array according to a received search instruction, and outputting a search result,

wherein the non-volatile memory array is a PCM array, a NOR memory array, a 3D NOR memory array, a MRAM array or a RRAM array,

wherein each of the plurality of node chunks comprises a node vector data, a number of neighboring nodes, and a plurality of identifiers of neighboring nodes, of each of the plurality of nodes.

12 . The operation method according to claim 11 , wherein executing, by a processing unit of the memory device, the DiskANN search comprises:

comparing a graph index corresponding to the plurality of node chunks, with a query condition of the search instruction, to obtain a near node of the plurality of nodes, in the plurality of node chunks, corresponding to comparison of the graph index;

based on respective identifiers of neighboring nodes of the near node, in the plurality of node chunks stored in the NAND memory array, obtaining a plurality of respective PQ vectors of neighboring nodes corresponding to the respective identifiers of neighboring nodes of the near node, from the plurality of PQ vectors stored in the non-volatile memory array;

comparing the plurality of respective PQ vectors of the neighboring nodes of the near node for obtaining a nearest node nearest to the query condition, from the neighboring nodes; and

using the nearest node as the near node and repeating the above steps until k nodes nearest to the query condition are obtained, which search result includes the k nodes as a Top-K search result,

wherein k is an integer greater than or equal to one.

13 . The operation method according to claim 12 , wherein the graph index stores in the non-volatile memory array.

14 . The operation method according to claim 12 , wherein the graph index is stored in a dynamic memory array of the computational storage device, and the dynamic memory array is coupled to the processing unit.

15 . The operation method according to claim 14 ,

wherein the dynamic memory array is a DRAM array.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2024
From: SU, WEI-CHENG; YANG, CHIH-HSIANG; LUNG, HSIANG-LAN
To: MACRONIX INTERNATIONAL CO., LTD.
Reel/Frame 069442/0602 →
References Cited (20)
US 12481666B1 · Jain · 2025 [cited by examiner]
US 20150106548A1 · Dubois · 2015 [cited by examiner]
US 20190392058A1 · Konow Krause · 2019 [cited by examiner]
US 20210117425A1 · Rao · 2021 [cited by examiner]
US 20240320231A1 · Bhattacharjee · 2024 [cited by examiner]
US 20240330260A1 · Xie et al. · 2024 [cited by applicant]
US 20250245269A1 · Tatsuno · 2025 [cited by examiner]
US 20250265239A1 · Wang · 2025 [cited by examiner]
US 20250284680A1 · Aggarwal · 2025 [cited by examiner]
US 20260037162A1 · Wei · 2026 [cited by examiner]
US 20260064698A1 · Zhang · 2026 [cited by examiner]
US 20260079982A1 · Khan · 2026 [cited by examiner]
US 20260093734A1 · Mukherjee · 2026 [cited by examiner]
CN 116150304A · 2023 [cited by applicant]
TW I822162B · 2023 [cited by applicant]
OOD-DiskANN: Efficient and Scalable Graph ANNS for Out-of-Distribution Queries (Year: 2022). [cited by examiner]
High-Throughput Vector Similarity Search in Knowledge Graphs (Year: 2023). [cited by examiner]
Fong, et al.: “Phase-Change Memory—Towards a Storage-Class Memory”; IEEE Transactions on Electron Devices, vol. 64, No. 11, Nov. 2017. [cited by applicant]
Subramanya, et al.: “DiskANN: Fast Accurate Billion-point Nearest Neighbor Search on a Single Node”; 33rd Conference on Neural Information Processing Systems (NeurIPS 2019), Vancouver, Canada; pp. 1-11. [cited by applicant]
Ni, et al.: “DiskANN++: Efficient Page-based Search over Isomorphic Mapped Graph Index using Query-sensitivity Entry Vertex”; arXiv:2310.00402v1 [cs.IR] Sep. 30, 2023; pp. 1-14. [cited by applicant]