IP Library Granted Patent US 10,452,533
Granted Patent B2
US 10,452,533 · App. 15/449,612 · Granted Oct 22, 2019

Access network for address mapping in non-volatile memories

Inventor: Kiran Kumar Gunnam (Milpitas, CA)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F12/0246G06F12/0607G06F7/768G06F12/10G06F12/1072G06F2212/1016G06F2212/1044G06F2212/152G06F2212/214G06F2212/7201G06F2212/7211
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,452,533
App. No.
15/449,612
Granted
Oct 22, 2019
Kind
B2
Abstract

Systems and methods for determining a physical block address (PBA) of a non-volatile memory (NVM) to enable a data access of a corresponding logical block address (LBA) are described. One such method includes generating a first physical block address (PBA) candidate from a LBA using a first function; generating a second physical block address (PBA) candidate from the LBA using a second function; and selecting either the first PBA candidate or the second PBA candidate for the data access based on information related to a background swap of data stored at the first PBA candidate and a background swap of data stored at the second PBA candidate.

Claims (61)

1. A method for determining a physical block address (PBA) of a non-volatile memory (NVM) to enable a data access of a corresponding logical block address (LBA), the method comprising:

generating a first physical block address (PBA) candidate within a physical block address (PBA) map from a LBA using a first function and a first cumulative control state;

generating a second physical block address (PBA) candidate within the PBA map from the LBA using a second function and a second cumulative control state; and

selecting either the first PBA candidate or the second PBA candidate for the data access based on information related to a background swap of data stored at the first PBA candidate and a background swap of data stored at the second PBA candidate, wherein the selecting comprises:

determining a position of the second PBA candidate relative to a midpoint of all entries in the PBA map;

determining a PBA move counter based on the position of the second PBA candidate;

comparing the PBA move counter to a move index indicative of a current position of PBA swaps within the PBA map; and

selecting either the first PBA candidate or the second PBA candidate based on the comparison of the PBA move counter and the move index.

2. The method of claim 1 , further comprising accessing data stored at the selected PBA candidate via the LBA.

3. The method of claim 1 , wherein the data access is one of a read access or a write access.

4. The method of claim 1 , wherein the information related to the background swap of data stored at the first PBA candidate and the background swap of data stored at the second PBA candidate comprises a status of the background swap of data stored at the first PBA candidate and a status of the background swap of data stored at the second PBA candidate.

5. The method of claim 1 , further comprising:

mapping a portion of a physical address space containing the selected PBA candidate to another portion of the physical address space using at least one of a background data move or a background data swap.

6. The method of claim 1 :

wherein the selecting either the first PBA candidate or the second PBA candidate comprises selecting either the first PBA candidate or the second PBA candidate using a memory table.

7. The method of claim 1 , wherein at least one of the first function or the second function comprises a function performed by at least one of a multi-stage interconnection network or a block cipher.

8. The method of claim 7 , wherein the multi-stage interconnection network comprises at least one of a Benes network, an inverse Benes network, a Bitonic network, an inverse Bitonic network, an Omega network, an inverse Omega network, a Butterfly network, or an inverse Butterfly network.

9. The method of claim 1 , wherein the determining the PBA move counter based on the position of the second PBA candidate comprises assigning the PBA move counter to the value of the second PBA candidate.

10. The method of claim 1 , wherein the determining the PBA move counter based on the position of the second PBA candidate comprises assigning the PBA move counter to the value of the first PBA candidate.

11. The method of claim 1 , wherein the selecting either the first PBA candidate or the second PBA candidate based on the comparison of the PBA move counter and the move index comprises selecting the first PBA candidate.

12. The method of claim 1 , wherein the selecting either the first PBA candidate or the second PBA candidate based on the comparison of the PBA move counter and the move index comprises selecting the second PBA candidate.

13. A system for determining a physical block address (PBA) of a non-volatile memory (NVM) to enable a data access of a corresponding logical block address (LBA), the system comprising:

a first network configured to generate a first PBA candidate from a LBA using a first function;

a second network configured to generate a second PBA candidate from the LBA using a second function; and

a select logic configured to select either the first PBA candidate or the second PBA candidate for the data access based on information related to a background swap of data stored at the first PBA candidate and a background swap of data stored at the second PBA candidate, the information comprising a status of the background swap of data stored at the first PBA candidate and a status of the background swap of data stored at the second PBA candidate;

wherein the first PBA candidate and the second PBA candidate are within a PBA map; and

wherein the status of the background swap of data stored at the second PBA candidate comprises a position of the second PBA candidate relative to a midpoint of all entries in the PBA map, a PBA move counter based on the position of the second PBA candidate, and a move index indicative of a current position of PBA swaps within the PBA map.

14. The system of claim 13 , further comprising a processor configured to access data stored at the selected PBA candidate via the LBA.

15. The system of claim 13 , wherein the data access is one of a read access or a write access.

16. The system of claim 13 , further comprising a mapper configured to map a portion of a physical address space containing the selected PBA candidate to another portion of the physical address space using at least one of a background data move or a background data swap.

17. The system of claim 13 , where the select logic is configured to select the first PBA or the second PBA using a memory table.

18. The system of claim 13 , wherein the first network includes at least one of a multi-stage interconnection network or a block cipher network.

19. The system of claim 18 , wherein the multi-stage interconnection network comprises at least one of a Benes network, an inverse Benes network, a Bitonic network, an inverse Bitonic network, an Omega network, an inverse Omega network, a Butterfly network, or an inverse Butterfly network.

20. The system of claim 13 :

wherein the first network is configured to generate the first PBA candidate within the PBA map from the LBA using the first function and a first cumulative control state;

wherein the second network is configured to generate the second PBA candidate within the PBA map from the LBA using the second function and a second cumulative control state;

wherein the select logic is configured to:

determine a position of the second PBA candidate relative to a midpoint of all entries in the PBA map;

determine a PBA move counter based on the position of the second PBA candidate;

compare the PBA move counter to a move index indicative of a current position of PBA swaps within the PBA map; and

select either the first PBA candidate or the second PBA candidate based on the comparison of the PBA move counter and the move index.

21. The system of claim 20 , wherein the select logic is configured to assign the PBA move counter to the value of the second PBA candidate.

22. The system of claim 20 , wherein the select logic is configured to assign the PBA move counter to the value of the first PBA candidate.

23. The system of claim 20 , wherein the select logic is configured to select the first PBA candidate.

24. The system of claim 20 , wherein the select logic is configured to select the second PBA candidate.

25. The system of claim 13 :

wherein the first network is configured to generate the first PBA candidate within the PBA map from the LBA using the first function and a first cumulative control state;

wherein the second network is configured to generate the second PBA candidate within the PBA map from the LBA using the second function and a second cumulative control state;

wherein the select logic is configured to:

determine a position of the first PBA candidate relative to a midpoint of all entries in the PBA map;

determine a PBA move counter based on the position of the first PBA candidate;

compare the PBA move counter to a move index indicative of a current position of PBA swaps within the PBA map; and

select either the first PBA candidate or the second PBA candidate based on the comparison of the PBA move counter and the move index.

26. A system for determining a physical block address (PBA) of a non-volatile memory (NVM) to enable a data access of a corresponding logical block address (LBA), the system comprising:

means for generating a first PBA candidate within a physical block address (PBA) map from a LBA using a first function and a first cumulative control state;

means for generating a second PBA candidate within the PBA map from the LBA using a second function and a second cumulative control state; and

means for selecting either the first PBA candidate or the second PBA candidate for the data access based on information related to a background swap of data stored at the first PBA candidate and a background swap of data stored at the second PBA candidate, the means for selecting comprising:

means for determining a position of the second PBA candidate relative to a midpoint of all entries in the PBA map;

means for determining a PBA move counter based on the position of the second PBA candidate;

means for comparing the PBA move counter to a move index indicative of a current position of PBA swaps within the PBA map; and

means for selecting either the first PBA candidate or the second PBA candidate based on the comparison of the PBA move counter and the move index.

Assignments (10)
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 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 Mar 3, 2017
From: GUNNAM, KIRAN KUMAR
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 041465/0640 →
Continuity (4)
Continuation In Part 14967169 · Dec 11, 2015
Provisional Application 62360916 · Jul 11, 2016
Provisional Application 62192509 · Jul 14, 2015
Related Publication 20170177470A1 · Jun 22, 2017