IP Library Granted Patent US 11,157,319
Granted Patent B2
US 11,157,319 · App. 16/001,635 · Granted Oct 26, 2021

Processor with processor memory pairs for improved process switching and methods thereof

Inventors: Viacheslav Dubeyko (San Jose, CA); Luis Cargnini (San Jose, CA)
Assignee: Western Digital Technologies, Inc.
G06F9/5016G06F9/4881G06F12/1027G06F2212/202
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,319
App. No.
16/001,635
Granted
Oct 26, 2021
Kind
B2
Abstract

A processor includes processor memory arrays including one or more volatile memory arrays and one or more Non-Volatile Memory (NVM) arrays. Volatile memory locations in the one or more volatile memory arrays are paired with respective NVM locations in the one or more NVM arrays to form processor memory pairs. Process data is stored for different processes executed by at least one core of the processor in respective processor memory pairs. Processes are executed using the at least one core to directly access the process data stored in the respective processor memory pairs.

Claims (46)

1. A processor, comprising:

at least one core for executing processes;

one or more volatile memory arrays;

one or more Non-Volatile Memory (NVM) arrays, wherein volatile memory locations in the one or more volatile memory arrays are paired with NVM locations in the one or more NVM arrays to form processor memory pairs, and wherein the one or more volatile memory arrays and the one or more NVM arrays are included in the processor; and

control circuitry configured to:

store process data for different processes executed by the at least one core in the respective processor memory pairs, wherein the at least one core is configured to execute processes by directly accessing process data stored in the respective processor memory pairs;

store references to corresponding NVM locations of the respective processor memory pairs;

in response to an instruction to load process data for a process to be executed by a core of the at least one core, select at least one reference to the NVM location storing a Task State Segment (TSS) and a Translation Lookaside Buffer (TLB) for the process to be executed by the core; and

store local temporary data for the process in the volatile memory location of the processor memory pair for the process.

2. The processor of claim 1 , wherein the control circuitry is further configured to retain process data for a process in a processor memory pair after a core of the processor switches from executing the process to executing a different process.

3. The processor of claim 1 , wherein the control circuitry is further configured to store a TSS and a TLB for each of the different processes in a corresponding NVM location of the respective processor memory pairs.

4. The processor of claim 1 , wherein the control circuitry is further configured to store pointers in an array pointing to corresponding NVM locations of the respective processor memory pairs.

5. The processor of claim 1 , wherein the control circuitry is further configured to store local temporary data for the different processes in corresponding volatile memory locations of the respective processor memory pairs.

6. The processor of claim 1 , wherein the control circuitry is further configured to:

receive an instruction to load process data for a process;

determine whether process data for the process is stored in the processor memory pairs; and

in response to determining that the process data for the process is not stored in the processor memory pairs, load the process data from a main memory into a processor memory pair.

7. The processor of claim 1 , wherein the control circuitry is further configured to:

determine that an amount of free space available for storing process data in a processor memory pair has reached a threshold; and

in response to determining that the amount of free space has reached the threshold, evict process data for at least one process from the processor memory pair.

8. The processor of claim 7 , wherein the control circuitry is further configured to evict the process data for the at least one process based on at least one of when the process data was last accessed by a core and how frequently the process data has been accessed by the core.

9. A method for operating a processor including processor memory arrays including one or more volatile memory arrays and one or more Non-Volatile Memory (NVM) arrays, the method comprising:

pairing volatile memory locations in the one or more volatile memory arrays with respective NVM locations in the one or more NVM arrays to form processor memory pairs;

storing process data for different processes executed by at least one core of the processor in respective processor memory pairs;

storing references to corresponding NVM locations of the respective processor memory pairs;

in response to an instruction to load process data for a process to be executed by a core of the at least one core, selecting at least one reference to an NVM location storing a Task State Segment (TSS) and a Translation Lookaside Buffer (TLB) for the process to be executed by the core; and

storing local temporary data for the process in the volatile memory location of the processor memory pair for the process.

10. The method of claim 9 , further comprising executing processes by using the at least one core to directly access the process data stored in the respective processor memory pairs.

11. The method of claim 9 , further comprising storing a TSS and a TLB for each of the different processes in a corresponding NVM location of the respective processor memory pairs.

12. The method of claim 9 , further comprising storing local temporary data for the different processes in corresponding volatile memory locations of the respective processor memory pairs.

13. The method of claim 9 , further comprising:

receiving an instruction to load process data for a process;

determining whether process data for the process is stored in the processor memory pairs; and

in response to determining that the process data for the process is not stored in the processor memory pairs, loading the process data from a main memory into a processor memory pair.

14. The method of claim 9 , further comprising:

determining that an amount of free space available for storing process data in a processor memory pair has reached a threshold; and

in response to determining that the amount of free space has reached the threshold, evicting process data for at least one process from the processor memory pair.

15. The method of claim 14 , further comprising evicting the process data for the at least one process based on at least one of when the process data was last accessed by a core and how frequently the process data has been accessed the core.

16. A non-transitory computer readable medium storing computer-executable instructions, wherein when the computer-executable instructions are executed by control circuitry of a processor, the computer-executable instructions cause the control circuitry to:

store process data for different processes executed by at least one core of the processor in respective processor memory pairs of the processor, wherein the respective processor memory pairs include volatile memory locations paired with Non-Volatile Memory (NVM) locations, and wherein the volatile memory locations and the NVM locations are included in the processor;

store references to corresponding NVM locations of the respective processor memory pairs;

in response to an instruction to load process data for a process to be executed by the core, select at least one reference to the NVM location storing a Task State Segment (TSS) and a Translation Lookaside Buffer (TLB) for the process to be executed by the core; and

store local temporary data for the process in the volatile memory location of the processor memory pair for the process.

17. The non-transitory computer readable medium of claim 16 , wherein the core is configured to execute processes by directly accessing process data stored in the respective processor memory pairs.

18. The non-transitory computer readable medium of claim 16 , wherein when the computer-executable instructions are executed by the control circuitry, the computer-executable instructions further cause the control circuitry to store a TSS and a TLB for each of the different processes in a corresponding NVM location of the respective processor memory pairs.

19. The method of claim 9 , further comprising retaining process data for a process in a processor memory pair after a core of the processor switches from executing the process to executing a different process.

Assignments (10)
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 →
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 Jun 6, 2018
From: DUBEYKO, VIACHESLAV; CARGNINI, LUIS
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 046005/0857 →
Continuity (1)
Related Publication 20190377607A1 · Dec 12, 2019