IP Library Granted Patent US 12,436,693
Granted Patent B2
US 12,436,693 · App. 17/866,355 · Granted Oct 7, 2025

External data processing for network-ready storage products having computational storage processors

Inventor: Luca Bert (San Jose, CA)
Assignee: Micron Technology, Inc.
G06F3/0629G06F3/0607G06F3/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,436,693
App. No.
17/866,355
Granted
Oct 7, 2025
Kind
B2
Abstract

A computing device having: a local host system running a data application; and a storage product. The storage product has: a local storage device; a network interface to receive storage access messages from a remote host system; and a processing device configured to identify, from storage access messages, a first subset for processing by the data application, and a second subset bypassing the local host system. The first subset of the storage access messages includes first write messages configured by the remote host system to write first data into the storage product. The data application running in the local host system can generate second data based at least in part on the first data. The storage product can write the second data into the local storage device in response to the first write messages.

Claims (66)

1. A computing device, comprising:

a computer bus;

a local host system coupled to the computer bus, the local host system configured to execute instructions of a data application; and

a storage product manufactured as a standalone computer component and connected to the computer bus, the storage product comprising:

a network interface operable on a computer network to receive incoming packets from a remote host system;

a processing device coupled to the network interface to generate storage access messages from the incoming packets and to identify:

a first subset of the storage access messages for processing by the data application; and

a second subset of the storage access messages not provided to the local host system; and

a local storage device;

wherein the processing device is configured to communicate the first subset of the storage access messages to the local host system;

wherein the first subset of the storage access messages includes write messages.

2. The computing device of claim 1 , wherein the second subset of the storage access messages includes write messages configured to write third data into the storage product; and the storage product is configured to execute commands in the second subset of the storage access messages without providing the second subset of the storage access messages to the local host system.

3. The computing device of claim 2 , wherein the storage product further includes:

a computational storage processor;

wherein the computational storage processor is configured to process the third data to generate fourth data and write the fourth data into the local storage device.

4. The computing device of claim 3 , wherein the computational storage processor is configured to implement a computational storage function that generates the fourth data from the third data; and the computational storage processor is configured to communicate with the data application to perform a portion of computations of the computational storage function in the local host system.

5. The computing device of claim 4 , wherein the storage product further includes:

a random-access memory;

wherein a portion of the random-access memory is configured to be shared between the data application and the computational storage processor to perform the portion of the computations of the computational storage function.

6. The computing device of claim 5 , wherein the local host system is configured to write data, during processing a portion of the first subset of the storage access messages, into the portion of the random-access memory to configure the computational storage processor to perform the computational storage function.

7. The computing device of claim 3 , wherein the data application is configured to implement a function that generates the second data from the first data; and the computational storage processor and the data application are configured to communicate with each other to perform a portion of computations of the function by the computational storage processor.

8. The computing device of claim 7 , wherein the second data is further based on existing data stored in the local storage device prior to reception of the first data.

9. The computing device of claim 7 , wherein the first subset of the storage access messages includes read messages configured by the remote host system to retrieve fifth data from the storage product; and

wherein the computing device is configured to retrieve sixth data from the local storage device and provide the sixth data to the data application in the local host system to generate the fifth data.

10. The computing device of claim 9 , wherein the second subset of the storage access messages includes read messages configured by the remote host system to retrieve seventh data from the storage product; and

wherein the computing device is configured to retrieve eighth data from the local storage device and provide the eighth data to the computational storage processor to generate the eighth data.

11. A method, comprising:

executing, in a local host system coupled to a storage product via a computer bus, instructions of a data application; and

receiving, by a network interface in the storage product, incoming packets from a remote host system;

generating, by the storage product, storage access messages from the incoming packets;

identifying, by the storage product, a first subset of the storage access messages and a second subset of the storage access messages;

communicating, by the storage product, the first subset of the storage access messages to the local host system without providing the second subset of the storage access messages to the local host system; and

processing, by the data application running in the local host system, first data provided in write messages in the first subset to generate second data.

12. The method of claim 11 , wherein the second subset of the storage access messages includes write messages configured to write third data into the storage product;

and the method further comprises:

processing, by a computational storage processor configured in the storage product, the third data to generate fourth data; and

writing the fourth data into the local storage device;

wherein commands in the second subset of the storage access messages are executed by the storage product without the second subset of the storage access messages being provided to the local host system.

13. The method of claim 12 , further comprising:

sharing, between the data application and the computational storage processor, a portion of a random-access memory of the storage product; and

communicating, via the portion of the random-access memory, to implement, using the local host system, a portion of computations of a computational storage function to generate the fourth data from the third data.

14. The method of claim 13 , further comprising:

writing, by the local host system and during processing a portion of the first subset of the storage access messages, data into the portion of the random-access memory to configure the computational storage processor to perform the computational storage function.

15. The method of claim 14 , further comprising:

communicating, between the computational storage processor and the data application to cause the computational storage processor to perform a portion of computations in generation of the second data from the first data.

16. The method of claim 15 , wherein the second data is further based on existing data stored in the local storage device prior to reception of the first data.

17. The method of claim 15 , wherein the first subset of the storage access messages includes first read messages configured by the remote host system to retrieve fifth data from the storage product; the second subset of the storage access messages includes second read messages configured by the remote host system to retrieve seventh data from the storage product; and the method further comprises:

retrieving, from the local storage device, sixth data in response to the first read messages;

providing, from the storage product, the sixth data to the data application running in the local host system to generate the fifth data;

retrieving, from the local storage device, eighth data in response to the second read messages; and

providing, from the storage product, the eighth data to the computational storage processor to generate the seventh data.

18. A non-transitory computer storage medium storing instructions which, when executed in a local host system of a computing device, cause the computing device to perform a method, the method comprising:

configuring, by the local host system, a storage product connected via a computer bus to the local host system, wherein the storage product is configured to:

receive, by a network interface in the storage product, incoming packets from a remote host system;

generate, by the storage product, storage access messages from the incoming packets;

identify, by the storage product, a first subset of the storage access messages and a second subset of the storage access messages;

communicate, by the storage product, the first subset of the storage access messages to the local host system without providing the second subset of the storage access messages to the local host system;

receiving, in a data application running in the local host system, the first subset of storage access messages; and

processing, by the data application running in the local host system, first data provided in write messages in the first subset to generate second data.

19. The non-transitory computer storage medium of claim 18 , wherein the second subset of the storage access messages includes write messages configured to write third data into the storage product; and the method further comprises:

writing data, during processing a portion of the first subset of the storage access messages, into the storage product to configure a computational storage processor to perform a computational storage function of generating fourth data from the third data and write the fourth data into the local storage device.

20. The non-transitory computer storage medium of claim 19 , wherein the first subset of the storage access messages includes first read messages configured by the remote host system to retrieve fifth data from the storage product; the second subset of the storage access messages includes second read messages configured by the remote host system to retrieve seventh data from the storage product; and the method further comprises:

retrieving, from the local storage device, sixth data in response to the first read messages; and

generating, using the data application running in the local host system, the fifth data from the sixth data;

wherein the computational storage processor to generate the seventh data from eighth data retrieved from the local storage device; and

wherein the computational storage function includes encryption, decryption, compression, decompression, data replication, erasure coding, filtering, matching, searching, or reporting, or any combination thereof.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2022
From: BERT, LUCA
To: MICRON TECHNOLOGY, INC.
Reel/Frame 060679/0136 →
Continuity (1)
Related Publication 20240020029A1 · Jan 18, 2024
References Cited (132)
US 6466994B1 · Burke et al. · 2002 [cited by applicant]
US 6745310B2 · Chow · 2004 [cited by applicant]
US 6766359B1 · Oliveira et al. · 2004 [cited by applicant]
US 9432484B1 · Xie et al. · 2016 [cited by applicant]
US 9514080B1 · Chang · 2016 [cited by applicant]
US 9537953B1 · Dadashikelayeh et al. · 2017 [cited by applicant]
US 10152247B2 · Li et al. · 2018 [cited by applicant]
US 10664217B1 · Laha et al. · 2020 [cited by applicant]
US 10984044B1 · Batsakis et al. · 2021 [cited by applicant]
US 11106734B1 · Batsakis et al. · 2021 [cited by applicant]
US 11360708B1 · Farhan et al. · 2022 [cited by applicant]
US 11410475B2 · Golov · 2022 [cited by applicant]
US 11436194B1 · Salmon et al. · 2022 [cited by applicant]
US 11650868B2 · Jha et al. · 2023 [cited by applicant]
US 11733931B1 · Wu et al. · 2023 [cited by applicant]
US 11775225B1 · Bert · 2023 [cited by applicant]
US 11809361B1 · Bert · 2023 [cited by applicant]
US 11853819B1 · Bert · 2023 [cited by applicant]
US 11868827B1 · Bert · 2024 [cited by applicant]
US 11868828B1 · Bert · 2024 [cited by applicant]
US 11947834B2 · Bert · 2024 [cited by applicant]
US 11983434B2 · Bert · 2024 [cited by applicant]
US 12050945B2 · Bert · 2024 [cited by applicant]
US 12153798B2 · Bert · 2024 [cited by applicant]
US 20020165961A1 · Everdell · 2002 [cited by applicant]
US 20050172073A1 · Voigt et al. · 2005 [cited by applicant]
US 20050240745A1 · Tyer et al. · 2005 [cited by applicant]
US 20060026229A1 · Ari et al. · 2006 [cited by applicant]
US 20060185015A1 · Cheston et al. · 2006 [cited by applicant]
US 20070008988A1 · Kim · 2007 [cited by examiner]
US 20080228897A1 · Ko · 2008 [cited by applicant]
US 20080320233A1 · Kinter · 2008 [cited by applicant]
US 20090168799A1 · Crowley et al. · 2009 [cited by applicant]
US 20100005234A1 · Ganga et al. · 2010 [cited by applicant]
US 20100095073A1 · Caulkins · 2010 [cited by applicant]
US 20100106889A1 · Manning · 2010 [cited by applicant]
US 20100274971A1 · Solihin · 2010 [cited by applicant]
US 20110246823A1 · Khan et al. · 2011 [cited by applicant]
US 20120030408A1 · Flynn et al. · 2012 [cited by applicant]
US 20120110277A1 · Shin et al. · 2012 [cited by applicant]
US 20120278396A1 · Vuong · 2012 [cited by applicant]
US 20120311271A1 · Klein et al. · 2012 [cited by applicant]
US 20130097369A1 · Talagala et al. · 2013 [cited by applicant]
US 20130282948A1 · Brazao et al. · 2013 [cited by applicant]
US 20140115244A1 · Maybee et al. · 2014 [cited by applicant]
US 20140173195A1 · Rosset et al. · 2014 [cited by applicant]
US 20140181235A1 · Sindhu et al. · 2014 [cited by applicant]
US 20140282613A1 · Jea et al. · 2014 [cited by applicant]
US 20160124880A1 · Goren et al. · 2016 [cited by applicant]
US 20170109098A1 · Nakata et al. · 2017 [cited by applicant]
US 20170288867A1 · Collier et al. · 2017 [cited by applicant]
US 20170344430A1 · Greer et al. · 2017 [cited by applicant]
US 20180069923A1 · Tsalmon · 2018 [cited by applicant]
US 20180141750A1 · Hasegawa et al. · 2018 [cited by applicant]
US 20180217951A1 · Benisty et al. · 2018 [cited by applicant]
US 20180349487A1 · Garg et al. · 2018 [cited by applicant]
US 20190042501A1 · Trika · 2019 [cited by applicant]
US 20190044879A1 · Richardson et al. · 2019 [cited by applicant]
US 20190095107A1 · Wysoczanski et al. · 2019 [cited by applicant]
US 20190243695A1 · Mittal et al. · 2019 [cited by applicant]
US 20190243713A1 · Dunn et al. · 2019 [cited by applicant]
US 20190340024A1 · Brewer · 2019 [cited by applicant]
US 20200065018A1 · Hong · 2020 [cited by applicant]
US 20200117520A1 · Costa et al. · 2020 [cited by applicant]
US 20200136996A1 · Li et al. · 2020 [cited by applicant]
US 20200183785A1 · Shin et al. · 2020 [cited by applicant]
US 20200186445A1 · Govindaraju et al. · 2020 [cited by applicant]
US 20200226077A1 · Kang et al. · 2020 [cited by applicant]
US 20200394143A1 · Subbiah et al. · 2020 [cited by applicant]
US 20200409855A1 · Subbarao et al. · 2020 [cited by applicant]
US 20210019085A1 · Zhu et al. · 2021 [cited by applicant]
US 20210303424A1 · Jain · 2021 [cited by applicant]
US 20220004668A1 · Dewan et al. · 2022 [cited by applicant]
US 20220083257A1 · Kachare et al. · 2022 [cited by applicant]
US 20220121587A1 · Kragel et al. · 2022 [cited by applicant]
US 20220137835A1 · Malakapalli et al. · 2022 [cited by applicant]
US 20220188028A1 · Mesnier et al. · 2022 [cited by applicant]
US 20220236902A1 · Pinto et al. · 2022 [cited by applicant]
US 20220245082A1 · Vijayashekar et al. · 2022 [cited by applicant]
US 20220261165A1 · Wang et al. · 2022 [cited by applicant]
US 20220300207A1 · Tsuji et al. · 2022 [cited by applicant]
US 20220404986A1 · Pol · 2022 [cited by applicant]
US 20220405015A1 · Lee et al. · 2022 [cited by applicant]
US 20230029616A1 · Pandit et al. · 2023 [cited by applicant]
US 20230037870A1 · Jones · 2023 [cited by applicant]
US 20230088291A1 · Tsuji et al. · 2023 [cited by applicant]
US 20230127200A1 · Glimcher et al. · 2023 [cited by applicant]
US 20230214333A1 · Glimcher et al. · 2023 [cited by applicant]
US 20240020011A1 · Bert · 2024 [cited by applicant]
US 20240020046A1 · Bert · 2024 [cited by applicant]
US 20240020047A1 · Bert · 2024 [cited by applicant]
US 20240020048A1 · Bert · 2024 [cited by applicant]
US 20240020049A1 · Bert · 2024 [cited by applicant]
US 20240020051A1 · Bert · 2024 [cited by applicant]
US 20240020062A1 · Bert · 2024 [cited by applicant]
US 20240020181A1 · Bert · 2024 [cited by applicant]
US 20240020182A1 · Bert · 2024 [cited by applicant]
US 20240020183A1 · Bert · 2024 [cited by applicant]
US 20240020184A1 · Bert · 2024 [cited by applicant]
US 20240022526A1 · Bert · 2024 [cited by applicant]
US 20240022645A1 · Bert · 2024 [cited by applicant]
US 20240028546A1 · Bert · 2024 [cited by applicant]
US 20240069992A1 · Bert · 2024 [cited by applicant]
US 20240118950A1 · Bert · 2024 [cited by applicant]
US 20240143422A1 · Bert · 2024 [cited by applicant]
US 20240176535A1 · Bert · 2024 [cited by applicant]
US 20240295983A1 · Bert · 2024 [cited by applicant]
US 20240378098A1 · Bert · 2024 [cited by applicant]
WO 2023020055 · 2023 [cited by applicant]
Title: Data Storage Devices having Different Paths for Control Messages and Data Messages, U.S. Appl. No. 17/866,276, filed Jul. 15, 2022, Confirmation: 8786, Status Date: Sep. 6, 2024, Inventor: Luca Bert, Status: Non … [cited by applicant]
Title: Data Storage Devices with Reduced Buffering for Storage Access Messages, U.S. Appl. No. 17/866,300, filed Jul. 15, 2022, Confirmation: 5835, Status Date: Mar. 13, 2024, Inventor: Luca Bert, Status: Patented Case. [cited by applicant]
Title: Data Storage Devices with Reduced Buffering for Storage Access Messages, U.S. Appl. No. 18/435,626, filed Feb. 7, 2024, Confirmation 7228, Status Date: Sep. 5, 2024, Inventor: Luca Bert, Status: Non Final Action … [cited by applicant]
Title: Message Queue Configuration to Separate Processing Paths for Control Messages and Data Messages, U.S. Appl. No. 17/866,318, filed Jul. 15, 2022, Confirmation: 9315, Status Date: Oct. 30, 2024, Inventor: Luca Bert… [cited by applicant]
Title: Messsage Queues in Network-Ready Storage Products having Computational Storage Processors, U.S. Appl. No. 17/866,339, filed Jul. 15, 2022, Confirmation: 4919, Status Date: Dec. 6, 2023, Inventor: Luca Bert, Statu… [cited by applicant]
Title: Message Queues in Network-Ready Storage Products having Computational Storage Processors, U.S. Appl. No. 18/502,713, filed Nov. 6, 2023, Confirmation: 2997, Status Date: Sep. 30, 2024, Inventor: Luca Bert, Status… [cited by applicant]
Title: Network Data Storage Devices having External Access Control, U.S. Appl. No. 17/866,349, filed Jul. 15, 2022, Confirmation: 3270, Status Date: Oct. 18, 2023, Inventor: Luca Bert, Status: Patented Case. [cited by applicant]
Title: Network Data Storage Devices having External Access Control, U.S. Appl. No. 18/481,047, filed Oct. 4, 2023, Confirmation: 7133, Status Date: Oct. 23, 2023, Inventor: Luca Bert, Status: Docketed New Case—Ready for… [cited by applicant]
Title: Selective Messages Processing by External Processors for Network Data Storage Devices, U.S. Appl. No. 17/866,353, filed Jul. 15, 2022, Confirmation: 4972, Status Date: Sep. 13, 2023, Inventor: Luca Bert, Status: … [cited by applicant]
Title: Selective Message Processing by External Processors for Network Data Storage Devices, U.S. Appl. No. 18/458,956, filed Aug. 30, 2023, Confirmation: 6893, Inventor: Luca Bert, Status: Docketed New Case—Ready for E… [cited by applicant]
Title: Message Routing in a Network-Ready Storage Product for Internal and External Processing, U.S. Appl. No. 17/866,357, filed Jul. 15, 2022, Confirmation: 8420, Status Date: Dec. 20, 2023, Inventor: Luca Bert, Status… [cited by applicant]
Title: Message Routing in a Network-Ready Storage Product for Internal and External Processing, U.S. Appl. No. 18/544,806, filed Dec. 19, 2023, Confirmation: 2132, Status Date: Aug. 26, 2024, Inventor: Luca Bert, Status… [cited by applicant]
Title: Network Storage Services Implemented via Storage Products and External Software, U.S. Appl. No. 17/866,358, filed Jul. 15, 2022, Confirmation: 5228, Status Date: Nov. 7, 2024, Inventor: Luca Bert, Status: Final R… [cited by applicant]
Title: Network Storage Products with Options for External Processing, U.S. Appl. No. 17/866,350, filed Jul. 15, 2022, Confirmation: 4294, Status Date: Dec. 20, 2023, Inventor: Luca Bert, Status: Patented Case. [cited by applicant]
Title: Network Storage Products with Options for External Processing, U.S. Appl. No. 18/392,457, filed Dec. 21, 2023, Confirmation: 6158, Status Date: Nov. 1, 2024, Inventor: Luca Bert, Status: Notice of Allowance Maile… [cited by applicant]
Title: Network-Ready Storage for Implementations of Internet Appliances, U.S. Appl. No. 17/866,348, filed Jul. 15, 2022, Confirmation: 9884, Status Date: Nov. 6, 2024, Inventor: Luca Bert, Status: Patented Case. [cited by applicant]
Title: Network-Ready Storage Products for Implementations of Internet Appliances, U.S. Appl. No. 18/954,404, filed Nov. 20, 2024, Confirmation: 6818, Status Date: Nov. 20, 2024, Inventor: Luca Bert, Status: Application … [cited by applicant]
Title: Storage Products with Connectors to Operate External Network Interfaces, U.S. Appl. No. 17/866,341, filed Jul. 15, 2022, Confirmation: 9077, Status Date: Jul. 10, 2024, Inventor: Luca Bert, Status: Patented Case. [cited by applicant]
Inventors: Storage Products with Connectors to Operate External Network Interfaces, U.S. Appl. No. 18/784,807, filed Jul. 25, 2024, Confirmation: 8549, Status Date: Aug. 8, 2024, Inventor: Luca Bert, Status: Docketed Ne… [cited by applicant]
Title: Network-Ready Storage Products with Computational Storage Processors, U.S. Appl. No. 17/866,336, filed Jul. 15, 2022, Confirmation: 7401, Status Date: Apr. 24, 2024, Inventor: Luca Bert, Status: Patented Case. [cited by applicant]
Title: Network-Ready Storage Products with Computational Storage Processors, U.S. Appl. No. 18/646,650, filed Apr. 25, 2024, Confirmation: 8754, Status Date: May 20, 2024, Inventor: Luca Bert, Status: Docketed New Case—… [cited by applicant]
Title: Network-Ready Storage Products with Artificial Intelligence Accelerators, U.S. Appl. No. 17/866,333, filed Jul. 15, 2022, Confirmation: 4702, Status Date: Aug. 22, 2022, Inventor: Luca Bert, Status: Docketed New … [cited by applicant]
Title: Network-Ready Storage Products with Cryptography based Access Control, U.S. Appl. No. 17/866,312, filed Jul. 15, 2022, Confirmation: 2914, Status Date: Sep. 9, 2024, Inventor: Luca Bert. [cited by applicant]