IP Library Granted Patent US 11,157,692
Granted Patent B2
US 11,157,692 · App. 16/370,616 · Granted Oct 26, 2021

Neural networks using data processing units

Inventors: Viacheslav Dubeyko (San Jose, CA); Luis Vitorio Cargnini (San Jose, CA)
Assignee: Western Digital Technologies, Inc.
G06F40/242G06N3/08
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 11,157,692
App. No.
16/370,616
Granted
Oct 26, 2021
Kind
B2
Abstract

In some implementations, a computing system is provided. The computing system includes a device. The device includes a non-volatile memory divided into a plurality of memory sub-arrays. Each memory sub-array comprises a plurality of selectable locations. A plurality of data processing units are communicatively coupled to the non-volatile memory in the absence of a central processing unit of the computing system. The data processing unit is assigned to process data of a memory sub-array, and configured to store the first data object in the non-volatile memory receive a first data object via a communication interface. The first data object comprises a first content and is associated with a first set of keywords. The data processing unit is also configured to add the first set of keywords to a local dictionary. The local dictionary is stored in the non-volatile memory. The data processing unit is further configured to determine whether the first data object is related to one or more other data objects. The data processing units is further configured to create one or more relationships between the first data object and the one or more other data objects in response to determining that the first data object is related to one or more other data objects.

Claims (64)

1. A computing system comprising a first device, the first device comprising

a non-volatile memory comprising a plurality of memory sub-arrays, wherein each memory sub-array comprises a plurality of selectable locations; and

a plurality of data processing units communicatively coupled to the non-volatile memory in the absence of a central processing unit of the computing system;

the plurality of data processing units configured to access the non-volatile memory without a central processing unit (CPU); and;

the plurality of data processing units including:

a data processing unit assigned to process data of a memory sub-array of the memory sub-arrays without the CPU; and

the data processing unit thereby configured, without the CPU, to:

receive a first data object via a communication interface, wherein the first data object comprises a first content and is associated with a first set of keywords;

store the first data object in the non-volatile memory;

add the first set of keywords to a local dictionary, wherein the local dictionary is stored in the non-volatile memory;

determine whether the first data object is related to one or more other data objects; and

in response to determining that the first data object is related to the one or more other data objects, create one or more relationships between the first data object and the one or more other data objects.

2. The computing system of claim I, wherein to determine whether the first data object is related to the one or more other data objects the data processing unit is further configured to:

determine whether a first keyword of the first set of keywords matches a second keyword of a second data object, based on the local dictionary.

3. The computing system of claim 2 , wherein the local dictionary comprises a first data indicating keywords that are associated with the data objects that are stored in the non-volatile memory.

4. The computing system of claim 1 , wherein to determine whether the first data object is related to the one or more other data objects the data processing unit is further configured to:

determine whether a first keyword of the first set of keywords matches a second keyword of a second data object, based on a remote dictionary.

5. The computing system of claim 4 , wherein the remote dictionary comprises first data indicating keywords that are associated with data objects that are stored in a non-volatile memory of a second device in the computing system.

6. The computing system of claim 1 , wherein to create one or more relationships between the first data object and the one or more other data objects the data processing unit is further configured to:

update a relationship table to indicate that a first keyword associated with the first data object matches a second keyword associated with the second data object, wherein the second data object is stored in the non-volatile memory of the second device.

7. The computing system of claim 1 , wherein to create one or more relationships between the first data object and the one or more other data objects the data processing unit is further configured to:

update a relationship table to indicate that a first keyword associated with the first data. object matches a second keyword associated with the second data object, wherein the second data object is stored in a non-volatile memory of a second device in the computing system.

8. The computing system of claim 1 , wherein a first keyword of the first set of keywords is based on the first content of the first data object.

9. The computing system of claim 1 , wherein a first keyword of the first set of keywords is based on a second keyword of a second data object, wherein the second keyword is based on a content of the second data object.

10. A computing system comprising a first device, the first device comprising:

a non-volatile memory comprising into a plurality of memory sub-arrays; wherein:

each memory sub-array comprises a plurality of selectable locations;

the non-volatile memory is configured to store a plurality of data objects; and

each data object comprises content and is associated with one or more keywords; and

a plurality of data processing units communicatively coupled to the non-volatile memory in the absence of a central processing unit (CPU) of the computing system;

wherein a data processing unit of the plurality of data processing units is assigned to process data of a memory sub-array of the memory sub-arrays without the CPU; and

the data processing unit is thereby configured, without the CPU, to:

receive a request to retrieve one or more data objects from a requestor, wherein the request comprises a set of keywords; and

determine whether any data objects stored in the non-volatile memory are a match for the one or more keywords of the set of keywords based on a local dictionary, wherein the local dictionary is stored in the non-volatile memory;

in response to determining that a first set of data objects are a match for the one or more keywords of the set of keywords, provide first data indicative of the first set of data objects to the requestor;

determine whether any data objects stored in a non-volatile memory of a second device are a match for the one or more keywords of the set of keywords based on a remote dictionary, wherein the remote dictionary is stored in the non-volatile memory; and

in response to determining that the one or more data objects are stored in the non-volatile memory of the second device, forward the request to the second device.

11. The computing system of claim 10 , wherein to provide the first data indicative of the first set of data objects to the requestor the data processing unit is further configured to:

retrieve the first set of data ob j ects from the non-volatile memory; and

provide the first set of data objects to the requestor.

12. The computing system of claim 10 , wherein the first data comprises one or more of:

a list of data objects in the first set of data objects; and

a list of identifiers for the data processing units.

13. The computing system of claim 10 , wherein the data processing unit is further configured to:

receive, from the second device, second data indicative of a second set of data objects that are a match for the one or more keywords of the set of keywords; and

provide the second data to the requestor.

14. The computing system of claim 10 , wherein the data processing unit is further configured to:

select the first set of data objects based on a number of relationships associated with the first set of data objects.

15. The computing system of claim 10 , wherein the data processing unit is further configured to:

select the first set of data objects based on when the first set of data objects is stored in the non-volatile memory.

16. The computing system of claim 10 , wherein the local dictionary comprises second data indicating keywords that are associated with data objects that are stored in the non-volatile memory of the first device.

17. The computing system of claim 10 , wherein the remote dictionary comprises second data indicating keywords that are associated with data objects that are stored in the non-volatile memory of the second device.

18. A method, comprising:

receiving, by a data processing unit of a plurality of data processing units, a first data object via a communication interface, wherein the plurality of data processing units are communicatively coupled to a non-volatile memory for memory access in the absence of a central processing unit (CPU), and the pluralit of data processing units comprise the data processing unit, wherein:

the first data object comprises a first content and is associated with a first set of keywords;

the non-volatile memory comprises a plurality of memory sub-arrays;

each memory sub-array comprises a plurality of selectable locations; and

the data processing unit is assigned to process data of a memory sub-array of the memory sub-arrays without the CPU;

storing, by the data processing unit, the first data object in the non-volatile memory;

adding, by the data processing unit, the first set of keywords to a local dictionary, wherein the local dictionary is stored in the non-volatile memory;

determining, by the data processing unit, whether the first data object is related to one or more other data objects; and

in response to determining that the first data object is related to one or more other data objects, creating, by the data processing unit, one or more relationships between the first data object and the one or more other data objects.

19. The method of claim 18 , wherein determining whether the first data object is related to the one or more other data objects comprises:

determine whether a first keyword of the first set of keywords matches a second keyword of a second data object, based on the local dictionary.

Assignments (10)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2019
From: DUBEYKO, VIACHESLAV; CARGNINI, LUIS VITORIO
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 049100/0974 →