IP Library Granted Patent US 8,516,172
Granted Patent B1
US 8,516,172 · App. 13/163,481 · Granted Aug 20, 2013

Methods for early write termination and power failure with non-volatile memory

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 8,516,172
App. No.
13/163,481
Granted
Aug 20, 2013
Kind
B1
Abstract

In one embodiment of the invention, a memory apparatus for improved write performance is disclosed. The memory apparatus includes a base printed circuit board (PCB) having an edge connector for plugging into a host server system; a card level power source to provide card level power during a power failure; a memory controller coupled to the card level power source and having one or more memory channels; and one or more non-volatile memory devices (NVMDs) coupled to the card level power source and organized to respectively couple to the memory channels controlled by the memory controller. Each memory controller provides queuing and scheduling of memory operations on a channel for each NVMD in the memory channels. Responsive to power failure, the memory controller receives card level power and changes the scheduling of memory operations to the NVMDs in each memory channel.

Claims (55)

1. A method for writing data into non-volatile memory in an expansion memory card with a software driver, the method comprising:

issuing a first delayed write operation from operating system software or application software to a software driver;

in response to receiving the first delayed write operation, storing a delayed write request in a channel controller of a memory controller, wherein the stored delayed write request identifies a starting address of a delayed write buffer in a volatile memory in the memory controller and wherein the stored delayed write request further identifies a first starting non-volatile memory device (NVMD) address to which first write data is to be stored in a memory channel comprising one or more NVMDs;

transferring the first write data associated with the first delayed write operation to the delayed write buffer;

before completion of the first delayed write operation to an NVMD, notifying the operating system software or the application software that the first delayed write operation is guaranteed to be completed with a probability greater than fifty percent.

2. The method of claim 1 , further comprising:

issuing a second delayed write operation from the operating system software or the application software to the software driver;

transferring second write data associated with the second delayed write operation to an unused memory location in the delayed write buffer; and

before completion of the second delayed write operation to an NVMD, notifying the operating system software or the application software that the second delayed write operation is guaranteed to be completed with a probability greater than fifty percent.

3. The method of claim 2 , wherein

if a power failure occurs, the delayed write operation is guaranteed to be completed with a probability greater than fifty percent by

switching to a card level power source on the expansion card, and

completing any pending delayed write requests for writing data from the delayed write buffer into an NVMD beginning with the first starting NVMD address.

4. The method of claim 2 , further comprising:

detecting the delayed write buffer is full for being absent unused memory locations;

notifying the software driver that the delayed write buffer is full;

initiating a delayed write request on the memory channel in response to the delayed write buffer being full, the delayed write request to write the write data from the full delayed write buffer to a first NVM location at a first NVMD address in a first memory controller channel; and

waiting for completion of the delayed write request.

5. The method of claim 4 , further comprising:

examining results of the delayed write request;

if the delayed write request to the first NVMD location was unsuccessful, then attempting to rewrite the write data from the full delayed write buffer into a second NVMD location at a first NVMD backup address provided by a first backup register in the first memory channel controller.

6. The method of claim 5 , further comprising:

examining results of the rewrite;

if the rewrite to the second NVMD location was unsuccessful, then attempting to rewrite the write data from the full delayed write buffer into a third NVMD location at a second NVMD backup address provided by a second backup register in the first memory channel controller.

7. The method of claim 6 , further comprising:

examining results of the rewrite;

if the rewrite to the third NVMD location was unsuccessful, then attempting to rewrite the write data from the full delayed write buffer into a fourth NVMD location at a third NVMD backup address provided by a third backup register in the first memory channel controller.

8. The method of claim 1 , wherein

if a power failure occurs, the delayed write operation is guaranteed to be completed with a probability greater than fifty percent by

switching to a card level power source on the expansion card, and

completing any pending delayed write requests for writing data from the delayed write buffer into an NVMD beginning with the first starting NVMD address.

9. The method of claim 8 , further comprising:

prior to completing any pending delayed write requests, completing execution of any of the currently executing operations with NVMDs in the channel.

10. The method of claim 8 , wherein

if a power failure occurs, the write operation is further guaranteed to be completed by

initiating the delayed write request on the channel to write a first write data from the shared buffer to a first NVMD location at a first NVMD address in a first memory controller channel; and

waiting for completion of the delayed write request.

11. The method of claim 10 , wherein the write operation is further guaranteed to be completed by

examining results of the delayed write request;

if the delayed write request was unsuccessful, then attempting to rewrite the first write data from the shared buffer into a second NVM location at a first NVMD backup address provided by a first backup register in the first memory channel controller.

12. The method of claim 11 , wherein the write operation is further guaranteed to be completed by

examining results of the delayed write request;

if the rewrite was unsuccessful, then attempting to rewrite the first write data from the shared buffer into a third NVM location at a second NVMD backup address provided by a second backup register in the first memory channel controller.

13. The method of claim 12 , wherein the write operation is further guaranteed to be completed by

examining results of the delayed write request;

if the rewrite was unsuccessful, then attempting to rewrite the first write data from the shared buffer into a third NVM location at a third NVMD backup address provided by a third backup register in the first memory channel controller.

14. The method of claim 1 , wherein

the notification of the guaranteed completion is issued immediately after the initiating of the write operation and well before the write operation is the NVMD is completed.

15. The method of claim 14 , wherein

the notification of the guaranteed completion is issued in a time interval less than fifty percent of the write latency of the NVMD.

16. The method of claim 14 , wherein

the notification of the guaranteed completion is issued in a time interval less than twenty percent of the write latency of the NVMD.

17. The method of claim 1 , wherein

the NVMD is NAND flash memory; and

the notification of the guaranteed completion is issued within fifty microseconds of the initiating of the write operation.

Assignments (12)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
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 053926 FRAME 0446 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058966/0321 →
SECURITY INTEREST Recorded Sep 29, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 053926/0446 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2020
From: VIRIDENT SYSTEMS, LLC
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 053180/0472 →
CHANGE OF NAME Recorded Jan 30, 2019
From: VIRIDENT SYSTEMS, INC
To: VIRIDENT SYSTEMS, LLC
Reel/Frame 048196/0580 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2012
From: KARAMCHETI, VIJAY; NARASIMHA, ASHWIN
To: VIRIDENT SYSTEMS, INC.
Reel/Frame 029396/0096 →