Memory Die Binary Vector Search in On-Chip NVM Arrays
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional vector database searches in non-volatile memory (NVM) arrays are computationally slow and require significant bandwidth for data transfer due to the use of floating-point vectors, leading to higher costs and limited scalability.
Innovation Solution
Converting floating-point vectors to binary vectors for storage within the bitlines of NVM dies, enabling high-speed processing through parallelism of multi-die NAND arrays without significant data transfer.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If floating-point vectors are used for vector database searches, then measurement precision is improved, but productivity deteriorates due to computationally slow processing
Solution Approach 1:
The patent converts floating-point vectors to binary vectors, changing the numerical representation parameter from continuous floating-point values to discrete binary values. This parameter change enables the use of bitwise operations instead of computationally intensive floating-point arithmetic, dramatically improving processing speed while maintaining sufficient precision for similarity search applications
Solution Approach 2:
The patent replaces the mechanical computation system (CPU/GPU floating-point arithmetic) with a memory-based bitwise operation system. By storing binary vectors directly in NVM arrays and performing similarity searches through bitwise operations on the memory hardware itself, the system eliminates the need to transfer data between storage and processing units, significantly improving productivity
2Measurement precision
If floating-point vectors are stored in NVM arrays, then measurement precision is improved, but loss of energy increases due to significant bandwidth requirements for data transfer
Solution Approach 1:
The conversion from floating-point to binary representation reduces the bit width required to store each vector element. Binary vectors require fewer bits per element compared to floating-point formats, reducing the total data volume stored in NVM arrays and the energy required for data transfer operations
Solution Approach 2:
The patent replaces the energy-intensive data transfer mechanism (moving floating-point vectors between NVM and CPU/GPU) with in-memory bitwise operations. By performing search operations directly on the binary vectors stored in NVM arrays using hardware-accelerated bitwise operations, the system eliminates bandwidth-related energy consumption while maintaining precision through the binary representation
3Measurement precision
If floating-point vectors are used for vector database searches, then measurement precision is improved, but device complexity increases due to requirements for CPUs or GPUs
Solution Approach 1:
The patent changes the data representation parameter from floating-point to binary, which enables the use of simple bitwise logic operations instead of complex floating-point arithmetic. This parameter change allows the system to use basic memory hardware and simple control logic instead of requiring complex CPU or GPU processing units, thereby reducing device complexity while maintaining sufficient precision for the application
Solution Approach 2:
The patent replaces the complex processing system (CPU/GPU with floating-point units) with a simplified memory-centric architecture. By storing binary vectors in NVM arrays and performing searches through bitwise operations that can be executed by simple memory controllers or even FPGA logic, the system eliminates the need for complex processors, significantly reducing device complexity
Data Source
AI summary
A data storage device is configured to store a database of objects in an NVM die as binary vectors and to then search the database based on binary key vectors. The binary vectors may be received from a host for storage in the NVM die. In other examples, a data storage controller converts floating-point vectors received from the host into binary vectors for storage in the NVM die. Various procedures are described for converting the floating-point vectors into binary vectors. Exemplary procedures are also described for comparing a binary key vector received from the host with the binary vectors stored in the NVM die to detect matches. For example, a sequence of commands is described for applying by the data storage controller to the NVM die to control the die to identify and count matching bits using the latches of the NVM die. Volatile memory implementations are also described.


