IP Library › Granted Patent US 12,474,870
Granted Patent B2
US 12,474,870 · App. 18/530,035 · Granted Nov 18, 2025

System and method for in-SSD data processing engine selection based on stream IDs

Inventors: Jing Yang (San Jose, CA); Jingpei Yang (San Jose, CA); Rekha Pitchumani (Oak Hill, VA)
Assignee: Samsung Electronics Co., Ltd.
G06F3/0659G06F3/0613G06F3/0658G06F3/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 12,474,870
App. No.
18/530,035
Granted
Nov 18, 2025
Kind
B2
Abstract

A multi-stream memory system includes an in-device data processor including a first data processing engine and a second data processing engine, a controller processor, and a processor memory coupled to the controller processor, wherein the processor memory has stored thereon instructions that, when executed by the controller processor, cause the controller processor to perform: identifying a stream ID of an input stream, identifying the first data processing engine as being associated with the stream ID based on a stream assignment table, and applying the first data processing engine to the input stream to generate processed data.

Claims (54)

1 . A system comprising:

a first data processing element configured to perform a first process;

a second data processing element configured to perform a second process different from the first process;

a processor; and

memory coupled to the processor and storing instructions that, when executed by the processor, cause the processor to:

identify a first parameter associated with first data;

select the first data processing element to process the first data based on the first parameter to generate processed data;

identify a physical address associated with the first parameter; and

store the processed data and an indication of the selection of the first data processing element to process the first data using the physical address,

wherein the indication of the selection of the first data processing element identifies the first process performed on the first data by the first data processing element to generate the processed data.

2 . The system of claim 1 , wherein the indication is stored in metadata associated with the processed data using the physical address.

3 . The system of claim 1 , wherein to select the first data processing element to process the first data, the instructions further cause the processor to determine that the first data processing element is associated with the first parameter based on a mapping between the first parameter and the first data processing element.

4 . The system of claim 3 , wherein the mapping indicates the physical address associated with the first parameter.

5 . The system of claim 1 , wherein the instructions further cause the processor to:

identify a second parameter associated with second data; and

select a different data processing element based on the second parameter.

6 . The system of claim 1 , wherein the instructions further cause the processor to:

identify the second data processing element associated with the first parameter; and

select the second data processing element to process the processed data.

7 . The system of claim 1 , wherein the first data processing element is configured to perform at least one of a deduplication operation, a search operation, or a graphics processing operation as the first process.

8 . A method comprising:

identifying, by one or more processors, a first parameter associated with first data;

selecting, by the one or more processors, a first data processing element from among a plurality of data processing elements configured to perform different processes, the first data processing element being selected to process the first data based on the first parameter to generate processed data;

identifying, by the one or more processors, a physical address associated with the first parameter; and

storing, by the one or more processors, the processed data and an indication of the selecting of the first data processing element to process the first data using the physical address,

wherein the indication of the selecting of the first data processing element identifies a process performed on the first data by the first data processing element to generate the processed data.

9 . The method of claim 8 , wherein the indication is stored in metadata associated with the processed data using the physical address.

10 . The method of claim 8 , wherein the selecting of the first data processing element to process the first data comprises determining that the first data processing element is associated with the first parameter based on a mapping between the first parameter and the first data processing element.

11 . The method of claim 10 , wherein the mapping indicates the physical address associated with the first parameter.

12 . The method of claim 8 , further comprising:

identifying a second parameter associated with second data; and

selecting a different data processing element from among the plurality of data processing elements based on the second parameter.

13 . The method of claim 8 , further comprising:

identifying a second data processing element from among the plurality of data processing elements associated with the first parameter; and

select the second data processing element to process the processed data.

14 . The method of claim 8 , wherein the first data processing element is configured to perform at least one of a deduplication operation, a search operation, or a graphics processing operation.

15 . A storage device comprising:

a first data processing element configured to perform a first process;

a second data processing element configured to perform a second process different from the first process; and

a storage controller configured to:

identify a first parameter associated with first data;

select the first data processing element to process the first data based on the first parameter to generate processed data;

identify a physical address associated with the first parameter; and

store the processed data and an indication of the selecting of the first data processing element to process the first data using the physical address,

wherein the indication of the selecting of the first data processing element identifies the first process performed on the first data by the first data processing element to generate the processed data.

16 . The storage device of claim 15 , wherein the indication is stored in metadata associated with the processed data using the physical address.

17 . The storage device of claim 15 , wherein to select the first data processing element to process the first data, the storage controller is configured to determine that the first data processing element is associated with the first parameter based on a mapping between the first parameter and the first data processing element.

18 . The storage device of claim 17 , wherein the mapping indicates the physical address associated with the first parameter.

19 . The storage device of claim 15 , wherein the storage controller is further configured to:

identify a second parameter associated with second data; and

select a different data processing element based on the second parameter.

20 . The storage device of claim 15 , wherein the storage controller is further configured to:

identify the second data processing element associated with the first parameter; and

select the second data processing element to process the processed data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2025
From: YANG, JING; YANG, JINGPEI; PITCHUMANI, REKHA
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 073101/0862 →
Continuity (4)
Continuation 18055371 · Nov 14, 2022
Continuation 17117008 · Dec 9, 2020
Provisional Application 63116685 · Nov 20, 2020
Related Publication 20240111458A1 · Apr 4, 2024
References Cited (59)
US 5715176A · Mobini · 1998 [cited by applicant]
US 6006287A · Wakazu · 1999 [cited by applicant]
US 8069298B2 · Chang et al. · 2011 [cited by applicant]
US 8918579B2 · Kettner · 2014 [cited by applicant]
US 9338005B2 · Fascenda et al. · 2016 [cited by applicant]
US 9558282B2 · Biderman et al. · 2017 [cited by applicant]
US 9760502B2 · Raam · 2017 [cited by applicant]
US 9985649B1 · Bassov et al. · 2018 [cited by applicant]
US 10055171B2 · Horn · 2018 [cited by applicant]
US 10216417B2 · Huen et al. · 2019 [cited by applicant]
US 10296264B2 · Hassani et al. · 2019 [cited by applicant]
US 10379761B2 · Mutha et al. · 2019 [cited by applicant]
US 10459644B2 · Mehra et al. · 2019 [cited by applicant]
US 10698808B2 · Pandurangan et al. · 2020 [cited by applicant]
US 20070153729A1 · Alapuranen · 2007 [cited by examiner]
US 20150019840A1 · Anderson et al. · 2015 [cited by applicant]
US 20160266792A1 · Amaki · 2016 [cited by examiner]
US 20160283124A1 · Hashimoto · 2016 [cited by examiner]
US 20160283125A1 · Hashimoto · 2016 [cited by examiner]
US 20160283159A1 · Gopal et al. · 2016 [cited by applicant]
US 20160291872A1 · Hashimoto · 2016 [cited by examiner]
US 20160313943A1 · Hashimoto et al. · 2016 [cited by applicant]
US 20170017411A1 · Choi · 2017 [cited by examiner]
US 20170017663A1 · Huo et al. · 2017 [cited by applicant]
US 20170075614A1 · Kanno · 2017 [cited by examiner]
US 20170075832A1 · Bhimani · 2017 [cited by examiner]
US 20170228157A1 · Yang · 2017 [cited by examiner]
US 20170228188A1 · Hassani · 2017 [cited by examiner]
US 20170285967A1 · Pandurangan · 2017 [cited by examiner]
US 20170371585A1 · Lazo et al. · 2017 [cited by applicant]
US 20180059988A1 · Shivanand et al. · 2018 [cited by applicant]
US 20180113642A1 · Huen · 2018 [cited by examiner]
US 20180276115A1 · Shoji · 2018 [cited by applicant]
US 20180284993A1 · Guim Bernat · 2018 [cited by examiner]
US 20180307598A1 · Fischer · 2018 [cited by examiner]
US 20180321855A1 · Martineau et al. · 2018 [cited by applicant]
US 20190018784A1 · Ishii · 2019 [cited by examiner]
US 20190042783A1 · Guim Bernat et al. · 2019 [cited by applicant]
US 20190095116A1 · Igahara · 2019 [cited by examiner]
US 20190164615A1 · Kim · 2019 [cited by applicant]
US 20200057715A1 · Benisty · 2020 [cited by examiner]
US 20200099594A1 · Tudoran et al. · 2020 [cited by applicant]
US 20210081329A1 · Yokoyama et al. · 2021 [cited by applicant]
US 20210232499A1 · Yong et al. · 2021 [cited by applicant]
US 20210240632A1 · Jeon · 2021 [cited by examiner]
US 20210326067A1 · Li · 2021 [cited by applicant]
US 20220164138A1 · Yang · 2022 [cited by examiner]
CN 108450033A · 2018 [cited by applicant]
CN 109791519A · 2019 [cited by applicant]
KR 1020170094486A · 2017 [cited by applicant]
KR 1020180045786A · 2018 [cited by applicant]
TW 201839612A · 2018 [cited by applicant]
Choi, PhD, C., “Multi-Stream Write SSD Increasing SSD Performance and Lifetime with Multi-Stream Write Technology, Flash Memory Summit,” 2016, 20 pages. [cited by applicant]
Haratsch, E.F., “SSD with Compression: Implementation, Interface and Use Case, Flash Memory Summit, Seagate Technology,” 2019, 11 pages. [cited by applicant]
Vatto, K., “Samsung SSD 850 EVO (120GB, 250GB,500GB & ITB) Review,” AnandTech, Dec. 8, 2014, 5 pages. [cited by applicant]
Sumsung Solid State Drive TurboWrite Technology, White Paper, 2013 Samsung Electronics Co., 6 pages. [cited by applicant]
“Samsung Electronics Sets New Performance Standards for NVMe SSDs with 970 PRO and EVO,” Samsung Newsroom, Korea Apr. 24, 2018, 7 pages. [cited by applicant]
Chinese Notice of Allowance dated Jan. 18, 2024, issued in corresponding Chinese Patent Application No. 202111360567.6, 4 pages. [cited by applicant]
Taiwanese Office Action and Search Report for TW Application No. 11320938100 dated Sep. 11, 2024, 3 pages. [cited by applicant]