IP Library Granted Patent US 10,025,532
Granted Patent B2
US 10,025,532 · App. 14/928,188 · Granted Jul 17, 2018

Preserving read look ahead data in auxiliary latches

Inventors: Abhijeet Manohar (Bangalore, IN); Daniel E. Tuers (Kapaa, HI); Noga Deshe (Raanana, IL); Vered Kelner (Moshav Gan Haim, IL); Gadi Vishne (Petah Tikva, IL); Nurit Appel (Petach Tikvah, IL); Judah Gamliel Hahn (Ofra, IL)
Assignee: SanDisk Technologies LLC
G06F3/0659G06F3/0604G06F3/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 10,025,532
App. No.
14/928,188
Granted
Jul 17, 2018
Kind
B2
Abstract

A storage device utilizing read look ahead (RLA) may utilize auxiliary or spare latches as a RLA cache for storing pre-fetch data. The RLA may predict the next commands and do a speculative read to the flash using the latches for RLA storage. The auxiliary/spare latches may be present on a plane or die of non-volatile memory and may be different from the transfer data latch (XDL) that transfers data from the memory and the host. When the XDL is backed up, sense commands may still be performed and the data is stored in the auxiliary latches before being transferred with the XDL.

Claims (53)

1. A method for pre-fetching data, the method comprising:

performing the following in a storage system comprising a controller and a memory die comprising a non-volatile memory, a spare latch, and a transfer data latch (XDL), wherein the non-volatile memory, spare latch, and XDL are in the memory die and not in the controller:

predicting an address to be read from the non-volatile memory;

pre-fetching data from the predicted address in the non-volatile memory and storing the data

in the spare latch in the memory die;

receiving a plurality of read commands, each read command comprising an address;

determining that an address in one of the plurality of read commands matches the predicted address; and

prioritizing the one of the plurality of read commands over other read commands in the plurality of read commands by:

moving the data from the spare latch in the memory die to the XDL in the memory die; and

transferring the data from the XDL in the memory die to the controller.

2. The method of claim 1 transferring the data from the controller to a host.

3. The method of claim 1 , wherein the spare latch is configured to temporarily hold the data before the data is moved to the XDL.

4. The method of claim 1 , wherein only the XDL can transfer the data out of the memory device.

5. The method of claim 1 , wherein the predicted address is predicted from a prior read address.

6. The method of claim 1 wherein the predicting is based on a sequence of data previously requested by a host.

7. The method of claim 1 wherein the non-volatile memory array comprises a three-dimensional memory.

8. A memory die comprising:

a non-volatile memory array;

a transfer data latch (“XDL”);

one or more spare latches; and

pre-fetch circuitry configured to pre-fetch data for a future read request from the non-volatile memory array, store the pre-fetched data in the one or more spare latches, receive a plurality of read commands, each read command comprising an address, determine that an address in one of the plurality of read commands matches the predicted address, and prioritizing the one of the plurality of read commands over other read commands in the plurality of read commands by: moving the data from the spare latch in the memory die to the XDL in the memory die; and transferring the data from the XDL in the memory die out of the memory.

9. The memory die of claim 8 further comprising prediction circuitry configured to predict the future read request.

10. The memory die of claim 8 , wherein the non-volatile memory array comprises a three-dimensional memory.

11. The memory die of claim 8 wherein the pre-fetch circuitry is configured to store the pre-fetched data in two or more of the spare latches in parallel.

12. A memory system comprising:

a controller; and

a memory die in communication with the controller, wherein the memory die comprises:

a non-volatile memory array;

a data transfer latch (XDL);

one or more auxiliary latches; and

circuitry configured to:

cache, in the one or more auxiliary latches, data from the non-volatile memory array that is predicted to be requested by the controller in the future;

receive a plurality of read commands, each read command comprising an address;

determine that an address in one of the plurality of read commands matches the predicted address; and

prioritize the one of the plurality of read commands over other read commands in the plurality of read commands by:

moving the data from the spare latch in the memory die to the XDL in the memory die; and

transferring the data from the XDL in the memory die y to the controller.

13. The memory system of claim 12 , wherein the data is cached by storing the data in two or more of the auxiliary latches in parallel.

14. The memory system of claim 12 , wherein only the XDL is configured to transfer data to the controller.

15. The memory system of claim 12 , wherein the one or more auxiliary latches comprise a read look ahead cache.

16. The memory system of claim 12 , wherein the data predicted to be requested comprises data identified from a data sequence in prior read requests.

17. The memory system of claim 12 further comprising at least one additional memory die, wherein each additional memory die has its own data transfer latch (XDL) and its own one or more auxiliary latches.

18. A memory system comprising:

a memory die comprising a non-volatile memory, a spare latch, and a transfer data latch (XDL);

means for predicting an address to be read from the non-volatile memory;

means for pre-fetching data from the predicted address in the non-volatile memory and storing the data in the spare latch;

means for receiving a plurality of read commands, each read command comprising an address;

means for determining that an address in one of the plurality of read commands matches the predicted address; and

means for prioritizing the one of the plurality of read commands over other read commands in the plurality of read commands by:

moving the data from the spare latch in the memory die to the XDL in the memory die; and

transferring the data from the XDL in the memory die to the controller.

19. The memory system of claim 18 further comprising at least one additional memory die, wherein each additional memory die has its own data transfer latch (XDL) and spare latch.

20. The memory system of claim 18 , wherein the non-volatile memory array comprises a three-dimensional memory.

Assignments (5)
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 →
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 038812/0954 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2015
From: MANOHAR, ABHIJEET; TUERS, DANIEL E.; DESHE, NOGA; KELNER, VERED; VISHNE, GADI; APPEL, NURIT; HAHN, JUDAH GAMLIEL
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 036925/0299 →
Priority Claims (1)
IN 4837/CHE/2015 · Sep 11, 2015 · national
Continuity (1)
Related Publication 20170075629A1 · Mar 16, 2017
Cited By (3)
US 12,229,408 US 12,314,602 US 12,333,183