IP Library Granted Patent US 11,705,207
Granted Patent B2
US 11,705,207 · App. 17/103,695 · Granted Jul 18, 2023

Processor in non-volatile storage memory

Inventors: Luis Vitorio Cargnini (San Jose, CA); Viacheslav Anatolyevich Dubeyko (San Jose, CA)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G11C16/24G11C16/10
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,705,207
App. No.
17/103,695
Granted
Jul 18, 2023
Kind
B2
Abstract

In one example, a computing system includes a device, the device including: a non-volatile memory divided into a plurality of selectable locations, each bit in the non-volatile memory configured to have corresponding data independently altered, wherein the selectable locations are grouped into a plurality of data lines; and one or more processing units coupled to the non-volatile memory, each of the processing units associated with a data line of the plurality of data lines, and each of the processing units configured to compute, based on data in an associated data line of the plurality of data lines, corresponding results, wherein the non-volatile memory is configured to selectively write, based on the corresponding results, data in selectable locations of the associated data line reserved to store results of the computation from the process unit associated with the associated data line.

Claims (31)

1. A computing system, comprising:

a plurality of non-volatile memory units configured to store corresponding data, and instruction sets for performing different operations, each of the instruction sets comprising a plurality of sequentially-executable instructions for performing one of the different operations;

a plurality of first processing units respectively configured to manipulate data within an addressable location of a corresponding non-volatile memory unit of the plurality of non-volatile memory units, the addressable locations being respectively associated with different instructions of the plurality of sequentially-executable instructions, the plurality of first processing units being configured to concurrently execute the different instructions for a respective operation within the corresponding non-volatile memory units; and

at least one second processing unit respectively including the plurality of non-volatile memory units and the plurality of first processing units, the at least one second processing unit being configured to perform the different operations in a sequence on the corresponding data and to reorder, during the sequence, the different operations based on instruction sets most frequently used relative to each other.

2. The computing system of claim 1 , wherein the at least one second processing unit is further configured to power down one or more processing units of the plurality of first processing units not identified for use during the sequence.

3. The computing system of claim 1 , wherein the plurality of non-volatile memory units and the plurality of first processing units comprise components arranged on an integrated circuit.

4. The computing system of claim 1 , wherein the at least one second processing unit is further configured to maintain a queue in memory indicating the most frequently used instruction sets relative to each other.

5. The computing system of claim 4 , wherein the queue comprises an identifier stored for each of the instruction sets.

6. The computing system of claim 4 , wherein the queue comprises a usage value stored for identifying, for each of the instruction sets, a frequency of use of the instruction set.

7. A computing system, comprising:

a non-volatile memory comprising a plurality of data lines having corresponding data, and a plurality of code lines having instruction sets for performing different operations, each of the instruction sets comprising a plurality of sequentially-executable instructions for performing one of the different operations;

a plurality of processing units respectively configured to manipulate data within an addressable location of a memory subarray of the non-volatile memory, the addressable locations corresponding to different data lines of the plurality of data lines, the different data lines being respectively associated with different instructions of the plurality of sequentially-executable instructions, the plurality of processing units being configured to concurrently execute the different instructions for a respective operation within the memory subarrays of the non-volatile memory; and

a processor including the non-volatile memory and the plurality of processing units, the processor configured to order instruction sets most frequently used relative to each other and to perform the different operations in a sequence on the corresponding data for each of the data lines to produce a result,

wherein during the sequence, the processor is configured to reorder the operations based on the order of the instruction sets.

8. The computing system of claim 7 , wherein the processor is further configured to maintain in memory a queue comprising information indicating the most frequently used instruction sets relative to each other.

9. The computing system of claim 8 , wherein the processor is further configured to retrieve, during the sequence, the information from the queue.

10. The computing system of claim 8 , wherein the information comprises a plurality of usage values, each usage value indicating how often a corresponding one of the instruction sets is used to perform an operation on data.

11. The computing system of claim 8 , wherein the information comprises a plurality of identifiers corresponding to the code lines.

12. The computing system of claim 11 , wherein the queue further comprises an optimization window for providing a plurality of identifiers arranged based on the most frequently used instruction sets relative to each other.

13. The computing system of claim 7 , wherein the processor is further configured to store the result of each of the different operations in a dedicated portion of the data line for which the operation was performed.

14. The computing system of claim 7 , wherein the processor is further configured to reorder the operations periodically.

15. A computing system, comprising:

at least one non-volatile memory configured to store corresponding sets of data, and instruction sets for performing different operations;

a plurality of processing units respectively configured to manipulate data within a selectable location of a memory subarray of the at least one non-volatile memory, the selectable locations being respectively associated with different commands within the instruction sets, the plurality of processing units being configured to concurrently execute the different commands for a respective operation within the memory subarrays; and

at least one processor including the at least one non-volatile memory and the plurality of processing units, the at least one processor configured to perform the different operations on the corresponding sets of data in a sequence to produce corresponding results,

wherein during the sequence, the at least one processor is configured to reorder the operations based on a relative frequency of use of the instruction sets.

16. The computing system of claim 15 , wherein the at least one processor is configured to power down one or more processing units of the plurality of processing units not identified for use during the sequence.

17. The computing system of claim 15 , wherein the plurality of processing units and the at least one non-volatile memory comprise components arranged on an integrated circuit.

18. The computing system of claim 15 , wherein the at least one processor is further configured to maintain a queue in memory indicating the relative frequency of use of the instruction sets.

19. The computing system of claim 18 , wherein the queue comprises an identifier corresponding to each of the instruction sets.

20. The computing system of claim 18 , wherein the queue comprises a usage value identifying, for each of the instruction sets, a frequency of use of the instruction set.

Assignments (11)
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 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/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 - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
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 →
CHANGE OF ADDRESS Recorded May 31, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 063929/0998 →
RELEASE OF SECURITY INTEREST AT REEL 055404 FRAME 0942 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058966/0407 →
SECURITY INTEREST Recorded Feb 24, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 055404/0942 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 24, 2020
From: CARGNINI, LUIS VITORIO; DUBEYKO, VIACHESLAV ANATOLYEVICH
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 054463/0649 →