IP Library Granted Patent US 10,152,435
Granted Patent B2
US 10,152,435 · App. 15/423,205 · Granted Dec 11, 2018

Coherent controller

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 10,152,435
App. No.
15/423,205
Granted
Dec 11, 2018
Kind
B2
Abstract

A system includes a bus, at least one processor coupled to the bus, and a storage device coupled to the bus. The storage device includes storage class memory, a buffer; and a controller. The controller is configured to receive an instruction to provide data to the bus. Responsive to receiving the instruction to provide data to the bus, the controller is configured to retrieve data from the storage class memory, update the buffer to represent the data retrieved from the storage class memory, and output, at the bus, an indication that data responsive to the instruction to provide data to the bus is available at the buffer. The at least one processor is configured to refrain from modifying local data corresponding to the instruction to provide data to the bus after the controller receives the instruction to provide data to the bus and before the controller outputs the indication.

Claims (63)

1. A system comprising:

a bus;

at least one processor coupled to the bus; and

a storage device coupled to the bus, the storage device comprising:

storage class memory;

a buffer; and

a controller configured to:

receive an instruction to provide data to the bus; and

responsive to receiving the instruction to provide data to the bus:

retrieve data from the storage class memory;

update the buffer to represent the data retrieved from the storage class memory; and

output, at the bus, an indication that data responsive to the instruction to provide data to the bus is available at the buffer,

wherein the at least one processor is configured to refrain from modifying local data corresponding to the instruction to provide data to the bus after the controller receives the instruction to provide data to the bus and before the controller outputs the indication.

2. The system of claim 1 , wherein the bus comprises a coherence bus.

3. The system of claim 1 , wherein the controller is further configured to perform wear leveling of the storage class memory.

4. The system of claim 1 , wherein the controller is further configured to perform error correction of data after retrieving the data from the storage class memory and prior to updating the buffer to represent the data.

5. The system of claim 1 , wherein the controller is further configured to control access rights to data stored in the storage class memory.

6. The system of claim 1 , wherein the storage class memory comprises at least one of phase change memory or resistive random-access memory.

7. The system of claim 1 , wherein:

the storage device further comprises a register configured to store instructions for accessing data stored at the buffer; and

wherein the controller is further configured to receive the instruction to provide data to the bus via the register.

8. A method comprising:

receiving, by a coherent controller, an instruction to provide data to a coherence bus, wherein at least one processor is coupled to the coherence bus; and

responsive to receiving the instruction to provide data to the coherence bus:

fetching, by the coherent controller, data from storage class memory;

updating, by the coherent controller, a buffer to represent the data fetched from the storage class memory; and

writing, by the coherent controller, at the coherence bus, an indication that data responsive to the instruction to provide data to the coherence bus is available at the buffer,

wherein the at least one processor is configured to refrain from modifying local data corresponding to the instruction to provide data to the coherence bus after the coherent controller receives the instruction to provide data to the coherence bus and before the coherent controller writes the indication.

9. The method of claim 8 , further comprising:

performing, by the coherent controller, wear leveling of the storage class memory.

10. The method of claim 8 , further comprising:

performing, by the coherent controller, error correction of data after retrieving the data from the storage class memory and prior to updating the buffer to represent the data.

11. The method of claim 8 , further comprising:

controlling, by the coherent controller, access rights to data stored in the storage class memory.

12. The method of claim 8 , wherein the storage class memory comprises at least one of phase change memory or resistive random-access memory.

13. The method of claim 8 , further comprising:

receiving, by the coherent controller, the instruction to provide data to the coherence bus via a register.

14. A non-transitory computer-readable storage medium encoded with instructions that, when executed, cause a controller to:

receive an instruction to provide data to a bus, wherein at least one processor is coupled to the bus; and

responsive to receiving the instruction to provide data to the bus:

retrieve data from a storage class memory;

update a buffer to represent the data retrieved from the storage class memory; and

output, at the bus, an indication that data responsive to the instruction to provide data to the bus is available at the buffer,

wherein the at least one processor is configured to refrain from modifying local data corresponding to the instruction to provide data to the bus after the controller receives the instruction to provide data to the bus and before the controller outputs the indication.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the bus comprises a coherence bus.

16. The non-transitory computer-readable storage medium of claim 14 , wherein the instructions further cause the controller to perform wear leveling of the storage class memory.

17. The non-transitory computer-readable storage medium of claim 14 , wherein the instructions further cause the controller to perform error correction of data after retrieving the data from the storage class memory and prior to updating the buffer to represent the data.

18. The non-transitory computer-readable storage medium of claim 14 , wherein the instructions further cause the controller to control access rights to data stored in the storage class memory.

19. The non-transitory computer-readable storage medium of claim 15 , wherein the storage class memory comprises at least one of phase change memory or resistive random-access memory.

20. A system comprising:

means for receiving an instruction to provide data to a bus;

means for retrieving data from storage class memory in response to receiving the instruction to provide data to the bus;

means for updating a buffer to represent the data retrieved from the storage class memory in response to receiving the instruction to provide data to the bus; and

means for outputting at the bus an indication that data responsive to the instruction to provide data to the bus is available at the buffer in response to receiving the instruction to provide data to the bus,

wherein at least one processor is configured to refrain from modifying local data corresponding to the instruction to provide data to the bus after the controller receives the instruction to provide data to the bus and before the controller outputs the indication.

21. The system of claim 20 , further comprising:

means for performing wear leveling of the storage class memory.

22. The system of claim 20 , further comprising:

means for performing error correction of data after retrieving the data from the storage class memory and prior to updating the buffer to represent the data.

23. The system of claim 20 , further comprising:

means for controlling access rights to data stored in the storage class memory.

24. The system of claim 20 , further comprising:

means for receiving the instruction to provide data to the bus via a register.

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 - 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 Feb 2, 2017
From: BANDIC, ZVONIMIR Z.; CARGNINI, LUIS VITORIO; VUCINIC, DEJAN; WANG, QINGBO
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 041161/0251 →