IP Library Granted Patent US 12675231
Granted Patent B2
US 12675231 · App. 18/792,045 · Granted Jul 7, 2026

Storage system and data de-duplication method using in-memory search device

Inventors: Kun-Chi Chiang (Zhubei City, TW); Yung-Chun Li (New Taipei City, TW); Chun-Lien Su (Taichung City, TW); Han-Wen Hu (Tainan City, TW)
Assignee: MACRONIX INTERNATIONAL CO., LTD.
G06F3/0641G06F3/0604G06F3/0679
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 12675231
App. No.
18/792,045
Granted
Jul 7, 2026
Kind
B2
Abstract

A storage system and method utilize an in-memory search (IMS) memory device to improve data storage efficiency. A data controller generates a feature, such as a hash value, corresponding to user data temporarily stored in a random access memory. This feature is transmitted to the IMS memory device, which stores a plurality of characteristic values comprising data features and physical block addresses of data already written in a storage device. The IMS memory device compares the received feature with the stored characteristic values. Based on the comparison result provided by the IMS memory device, the data controller determines whether the user data is a duplicate and decides whether to write the user data into the storage device, thereby optimizing storage space usage and reducing data swapping.

Claims (38)

1 . A memory device coupled to a data controller, the memory device including:

a memory controller;

a driving circuit coupled to the memory controller; and

a memory array coupled to the memory controller, the memory array including a plurality of memory cells,

wherein

in response to a first user data feature of a user data generated by the data controller, the memory controller compares the first user data feature with a plurality of second user data features from a plurality of characteristic values stored in the memory cells to generate a comparison result, the plurality of characteristic values including the plurality of second user data features and a plurality of physical block addresses corresponding to data stored in a storage device;

the memory controller sends the comparison result to the data controller;

based on the comparison result, the data controller determines whether to write the user data into the storage device;

the data controller divides the user data into a plurality of divided user data, and the data controller generates a plurality of first user data features of the plurality of divided user data;

the memory controller compares the plurality of first user data features with the plurality of second user data features to generate the comparison result; and

in response that the comparison result is matched, the data controller reads out a matched data from the storage device based on the physical block address and compares the divided user data with the matched data.

2 . The memory device according to claim 1 , wherein when the comparison result is not matched, the data controller writes the divided user data into the storage device, the data controller updates the characteristic values by writing a new characteristic value corresponding to the divided user data in the memory cells.

3 . The memory device according to claim 1 , wherein when the data controller determines that the divided user data is not the same as the matched data in the storage device, the data controller writes the divided user data into the storage device, the data controller updates the characteristic values by writing a new characteristic value corresponding to the divided user data in the memory cells.

4 . The memory device according to claim 1 , wherein

the second user data feature and physical block addresses belonging to the same characteristic value are stored in the same word lines, different select string lines and different blocks of the memory array.

5 . The memory device according to claim 1 , wherein

the second user data feature and physical block addresses belonging to the same characteristic value are stored in different word lines, the same select string line and the same block of the memory array.

6 . The memory device according to claim 1 , wherein

the second user data feature and physical block addresses belonging to the same characteristic value are stored in the same word line across select string lines of the same block of the memory array.

7 . The memory device according to claim 1 , wherein

the second user data feature and physical block addresses belonging to the same characteristic value are respectively stored in different planes of the memory array.

8 . The memory device according to claim 1 , wherein

the second user data feature and physical block addresses belonging to the same characteristic value are respectively stored in different blocks within the same plane of the memory array.

9 . The memory device according to claim 1 , wherein

the second user data feature and physical block addresses belonging to the same characteristic value are stored in the same block within the same plane of the memory array.

10 . The memory device according to claim 9 , wherein in comparing and searching, once the user data features match one of the hash values stored in the IMS memory device, the corresponding physical block address is directly read out immediately without further comparing the physical block address.

11 . The memory device according to claim 10 , where “Don't care” patterns are applied on physical block address area; and fingerprint patterns are applied on the hash area in comparing.

12 . A data storage method for a storage system, the data storage method including:

generating a first user data feature of a user data stored in a random access memory by a data controller;

sending the first user data feature of the user data by the data controller to an IMS memory device;

comparing the first user data feature with a plurality of second user data features from a plurality of characteristic values stored in the IMS memory device to generate a comparison result, the plurality of characteristic values including the plurality of second user data features and a plurality of physical block addresses corresponding to data stored in a storage device;

sending the comparison result to the data controller by the IMS memory device; and

based on the comparison result, determining whether to write the user data into the storage device by the data controller;

wherein the data controller divides the user data stored in the random access memory into a plurality of divided user data, and the data controller generates a plurality of first user data features of the plurality of divided user data;

wherein the IMS memory device compares the plurality of first user data features with the plurality of second user data features to generate the comparison result; and

wherein when the comparison result is matched, the data controller reads out a matched data from the storage device based on a physical block address and compares the divided user data with the matched data.

13 . The data storage method according to claim 12 , wherein when the comparison result is not matched, the data controller writes the divided user data into the storage device, the data controller updates the characteristic values by writing a new characteristic value corresponding to the divided user data in the IMS memory device.

14 . The data storage method according to claim 12 , wherein when the data controller determines that the divided user data is not the same as the matched data in the storage device, the data controller writes the divided user data into the storage device, the data controller updates the characteristic values by writing a new characteristic value corresponding to the divided user data in the IMS memory device.