IP Library Granted Patent US 9,003,102
Granted Patent B2
US 9,003,102 · App. 13/218,935 · Granted Apr 7, 2015

Controller with extended status register and method of use therewith

Inventor: Paul A. Lassa (Cupertino, CA)
Assignee: SanDisk Technologies Inc.
G06F3/061G06F9/30101G06F3/0626G06F3/0653G06F3/0658G06F3/0679
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 9,003,102
App. No.
13/218,935
Granted
Apr 7, 2015
Kind
B2
Abstract

The embodiments described herein provide a controller with an extended status register and a method of use therewith. In one embodiment, a controller is provided with a first interface through which to communicate with a host and a second interface through which to communicate with a plurality of flash memory devices. The controller also comprises a status register, an extended status register, and a processor. The processor is operative to store, in the extended status register, status information of a plurality of events in time across the plurality of flash memory devices. The extended status register stores event status information, whereas the ONFI status register stores command status information. In response to a request from the host, the processor sends the status information of the plurality of events to the host for analysis.

Claims (42)

1. A controller comprising:

a first interface through which to communicate with a host;

a plurality of second interfaces through which to connect to a plurality of flash memory devices in parallel, wherein each of the plurality of flash memory devices comprises a three-dimensional memory;

a status register;

an extended status register, wherein the extended status register is a circular buffer; and

a processor in communication with the first and second interfaces, the status register, and the extended status register, wherein the processor is operative to:

store, in the extended status register, status information of a plurality of events in time across the plurality of flash memory devices by appending each event instance to a tail of the circular buffer;

monitor a head of the circular buffer to detect when the circular buffer is near a full/over-write condition;

in response to detecting that the circular buffer is near the full/over-write condition, set a fail indicator in the status register even though a present event is successful and does not, on its own, warrant the fail indicator being set in the status register;

receive a request from the host for the status information of the plurality of events; and

in response to the request, provide the status information of the plurality of events to the host for analysis, wherein the host receives the status information of the plurality of events on an aggregated basis rather than after each event;

wherein the status information includes an indication that the processor detected a failure in programming a page of data to a block of memory in the plurality of flash memory devices and copied that page and preceding pages in the block to a replacement block in the plurality of flash memory devices.

2. The controller of claim 1 , wherein the processor is further operative to receive a command from the host for corrective action after the host analyzes the status information of the plurality of events.

3. The controller of claim 1 , wherein the host requests status information on a scheduled basis.

4. The controller of claim 1 , wherein the host requests status information on demand.

5. The controller of claim 1 , wherein at least one of the events comprises a command issued by the host.

6. The controller of claim 1 , wherein at least one of the events comprises an internal command issued by the controller.

7. The controller of claim 1 , wherein at least one of the events comprises a read command, a program command, an erase command, or a background command.

8. The controller of claim 1 , wherein the status information comprises one or more of the following: information on command exception conditions, information on internal management operations, information on storage resource reporting, and information on operational statistical information.

9. A method for providing status information of a plurality of events in time across a plurality of flash memory devices, the method comprising:

performing in a controller comprising a first interface through which to communicate with a host, a second interface through which to connect to a plurality of flash memory devices in parallel, wherein each of the plurality of flash memory devices comprises a three-dimensional memory, a status register, a extended status register, and a processor, wherein the extended status register is a circular buffer:

storing, in the extended status register, status information of a plurality of events in time across the plurality of flash memory devices by appending each event instance to a tail of the circular buffer;

monitoring a head of the circular buffer to detect when the circular buffer is near a full/over-write condition;

in response to detecting that the circular buffer is near the full/over-write condition, setting a fail indicator in the status register even though a present event is successful and does not, on its own, warrant the fail indicator being set in the status register;

receiving a request from the host for the status information of the plurality of events; and

in response to the request, providing the status information of the plurality of events to the host for analysis, wherein the host receives the status information of the plurality of events on an aggregated basis rather than after each event;

wherein the status information includes an indication that the processor detected a failure in programming a page of data to a block of memory in the plurality of flash memory devices and copied that page and preceding pages in the block to a replacement block in the plurality of flash memory devices.

10. The method of claim 9 further comprising receiving a command from the host for corrective action after the host analyzes the status information of the plurality of events.

11. The method of claim 9 , wherein the host requests status information on a scheduled basis.

12. The method of claim 9 , wherein the host requests status information on demand.

13. The method of claim 9 , wherein at least one of the events comprises a command issued by the host.

14. The method of claim 9 , wherein at least one of the events comprises an internal command issued by the controller.

15. The method of claim 9 , wherein at least one of the events comprises a read command, a program command, an erase command, or a background command.

16. The method of claim 9 , wherein the status information comprises one or more of the following: information on command exception conditions, information on internal management operations, information on storage resource reporting, and information on operational statistical information.

17. The method of claim 9 , wherein the extended status register is a circular buffer.

18. The method of claim 17 further comprising sending an alert or forcing a failure when the circular buffer reaches a capacity threshold.

19. The controller of claim 1 , wherein the processor is further operative to receive multiple read or write requests for individual pages and to simultaneously handle the multiple read or write requests.

20. The controller of claim 1 further comprising a read scrubbing module configured to detect if a number of soft error rates encountered when reading a block of memory in the plurality of flash memory devices exceeds a threshold, wherein, if the number of soft error rates exceeds the threshold, the processor is operative to copy data in the block to another block in the plurality of flash memory devices.

21. The controller of claim 1 , wherein the first and second NAND interfaces are toggle mode interfaces.

22. The method of claim 9 , wherein the processor is further operative to receive multiple read or write requests for individual pages and to simultaneously handle the multiple read or write requests.

23. The method of claim 9 further comprising a read scrubbing module configured to detect if a number of soft error rates encountered when reading a block of memory in the plurality of flash memory devices exceeds a threshold, wherein, if the number of soft error rates exceeds the threshold, the processor is operative to copy data in the block to another block in the plurality of flash memory devices.

24. The method of claim 9 , wherein the first and second NAND interfaces are toggle mode interfaces.

Assignments (5)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0850 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2011
From: LASSA, PAUL A.
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 026815/0281 →
Continuity (1)
Related Publication 20130054871A1 · Feb 28, 2013