IP Library Granted Patent US 11,086,774
Granted Patent B2
US 11,086,774 · App. 16/452,463 · Granted Aug 10, 2021

Address translation for storage device

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 11,086,774
App. No.
16/452,463
Granted
Aug 10, 2021
Kind
B2
Abstract

Techniques are described for accessing data from a storage device. In one example, the storage device may include a storage medium comprising non-volatile memory, a network connection, and one or more processing entities. The one or more processors may be configured to receive a request from the network connection at the non-volatile memory storage device for accessing data associated with a file system object, the request comprising a virtual address offset, a file object identifier and a size of the data access, perform, at a flash translation layer of a storage device software stack executing on the one or more processing entities of the storage device, a translation from the virtual address offset to a physical address for the data stored on the non-volatile memory, using the virtual address offset and the file object identifier, and access the data from the physical address from the storage medium.

Claims (37)

1. An apparatus, comprising:

a non-volatile memory; and

a processing entity configured to:

receive an access request for accessing data associated with a file system object, the access request comprising a virtual address offset;

perform a translation from the virtual address offset to a physical address of the data stored on the non-volatile memory, based on the virtual address offset;

access the data associated with the file system object, using the physical address; and

modify the data associated with the file system object by writing to a log-structured file of the non-volatile memory,

wherein the translation from the virtual address offset to the physical address of the data stored on the non-volatile memory is based at least in part on global wear leveling.

2. The apparatus of claim 1 , wherein the processing entity comprises a flash translation layer, and wherein the flash translation layer is configured to receive the access request for accessing data associated with the file system object, perform the translation, access the data, and modify the data.

3. The apparatus of claim 1 , wherein the file system object is provided a virtual block space for accessing data from the non-volatile memory that is independent of virtual block spaces assigned to other file system objects, and wherein each virtual block space provides the file system object an exclusive view of an address space.

4. The apparatus of claim 1 , wherein the processing entity is configured to access the data associated with the file system object to perform a modify operation followed by performing a write operation to the virtual address offset associated with the file system object.

5. The apparatus of claim 4 , wherein the processing entity comprises a flash translation layer, and wherein the flash translation layer is configured to perform the modify operation for the data or a portion of the data by using a log structured write only once between receiving the access request for modifying the data or the portion of the data from a network connection and completing the write operation to the non-volatile memory.

6. The apparatus of claim 1 , wherein the access request further comprises a file object identifier and a size of the data for access, wherein the processing entity is configured to perform the translation based on the virtual address offset and the file object identifier, and wherein the translation to the physical address based at least in part on the global wear leveling reduces wear caused by repeated data accesses to a same physical location on the non-volatile memory.

7. The apparatus of claim 2 , wherein the flash translation layer is configured to perform block allocation for storing and accessing data from the non-volatile memory.

8. The apparatus of claim 2 wherein only the flash translation layer is configured to perform garbage collection for using a log structured file system.

9. The apparatus of claim 2 , wherein the flash translation layer is configured to perform reads and writes to the non-volatile memory using a log-structured file system of the non-volatile memory.

10. The apparatus of claim 2 , wherein the flash translation layer is configured to perform sparse virtual block number (VBN) to physical block address (PBA) translation by only providing a VBN to PBA mapping of blocks of data that have been accessed.

11. The apparatus of claim 1 , wherein the virtual address offset is provided by the access request from a network connection using a network file sharing protocol, or the virtual address offset is provided by the access request from a host if provided by a layer higher than a file system layer of a storage device software stack.

12. The apparatus of claim 1 , wherein the processing entity is configured to perform only a single translation between receiving the access request for accessing the data and accessing the data stored on the non-volatile memory.

13. A method, comprising:

receiving a data access request for accessing data associated with a file system object, the data access request comprising a virtual address offset;

performing a translation from the virtual address offset to a physical address for the data stored on a storage medium, using the virtual address offset;

accessing the data stored on the storage medium; and

modifying the data associated with the file system object by writing to a log-structured file of the storage medium,

wherein the translation from the virtual address offset to the physical address of the data stored on the storage medium is based at least in part on global wear leveling.

14. The method of claim 13 , wherein a flash translation layer performs the receiving of the data access request, the translation, the accessing of the data, and the modifying of the data, and wherein the modifying the data comprises modifying, by the flash translation layer, the data or a portion of the data, by using a log structured write only once between receiving the data access request for modifying the data or the portion of the data and completing a write operation to the storage medium.

15. The method of claim 13 , wherein the data associated with the file system object is accessed for performing a modify operation followed by performing a write operation to the virtual address offset associated with the file system object.

16. A system, comprising:

means for receiving a data access request for accessing data associated with a file system object, the data access request comprising a virtual address offset;

means for performing a translation from the virtual address offset to a physical address for the data stored on a non-volatile memory, using the virtual address offset;

means for accessing the data stored on the non-volatile memory; and

means for modifying the data associated with the file system object by writing to a log-structured file of the non-volatile memory,

wherein the translation from the virtual address offset to the physical address of the data stored on the non-volatile memory is based at least in part on global wear leveling.

17. The system of claim 16 , wherein the system comprises means for accessing the data associated with the file system object to perform a modify operation followed by performing a write operation to the virtual address offset associated with the file system object, and wherein the file system object is provided a virtual block space for accessing data from the non-volatile memory that is independent of virtual block spaces assigned to other file system objects.

18. The system of claim 16 , wherein the means for modifying the data comprises means for modifying the data or a portion of the data by using a log structured write only once between receiving the data access request for modifying the data or the portion of the data and completing a write operation to the non-volatile memory.

19. The system of claim 16 , wherein the means for performing the translation comprises means for performing the translation at a flash translation layer, and wherein the flash translation layer is configured to perform reads and writes to the non-volatile memory using a log-structured file system of the non-volatile memory.

20. The system of claim 16 , wherein the system allows only a single address translation between receiving the data access request for accessing the data and accessing the data stored on the non-volatile memory.

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 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 Jul 1, 2019
From: DANILAK, RADOSLAV; BOTHRA, AMIT; PRUTHI, ARVIND
To: SKYERA, INC.
Reel/Frame 049647/0401 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2019
From: SKYERA, LLC
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 049647/0420 →
CHANGE OF NAME Recorded Jul 1, 2019
From: SKYERA, INC.
To: SKYERA, LLC
Reel/Frame 049648/0345 →