IP Library Granted Patent US 11,722,064
Granted Patent B2
US 11,722,064 · App. 17/357,852 · Granted Aug 8, 2023

Address translation for storage device

Inventors: Radoslav Danilak (Cupertino, CA); Amit Bothra (San Jose, CA); Arvind Pruthi (San Jose, CA)
Assignee: Western Digital Technologies, Inc.
H02M3/33523H02M3/33507H02M1/0022H02M1/0058H02M3/01
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,722,064
App. No.
17/357,852
Granted
Aug 8, 2023
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 (53)

1. A method for a data storage system, comprising:

in response to receiving a request to access data:

converting the request to a file system object to be used to access the data;

providing a virtual block space for the file system object;

performing wear leveling; and

based on at least the wear leveling, executing a translation from a virtual address offset to a physical address of the data based on the virtual block space associated with a file object identifier and the virtual address offset, wherein the data is associated with the file system object, and wherein the file system object provides the file object identifier and the virtual address offset of the data in the virtual block space; and

accessing the data associated with the file system object from the physical address based on the translation.

2. The method of claim 1 , wherein:

each file system object is provided with a respective virtual block space in that the virtual block space for the file system object is independent of other virtual block spaces assigned to other file system objects; and

the file system object is provided with an exclusive view of an address space with the virtual block space to allow writing to any address in the virtual block space in connection with the file system object.

3. The method of claim 1 , wherein:

the wear leveling comprises global wear leveling; and

performing the wear leveling comprises performing the global wear leveling prior to executing the translation.

4. The method of claim 1 , comprising:

altering the data associated with the file system object by writing to a log structured file associated with a memory, wherein the physical address is the physical address of the memory.

5. The method of claim 1 , comprising: performing block allocation for storing and accessing data from a memory of the data storage system.

6. A data storage system, comprising:

memory; and

a controller configured to cause:

in response to receiving a request to access data:

converting the request to a file system object to be used to access the data;

providing a virtual block space for the file system object;

performing wear leveling; and

based on at least the wear leveling, executing a translation from a virtual address offset to a physical address of the data based on the virtual block space associated with a file object identifier and the virtual address offset, wherein the data is associated with the file system object, and wherein the file system object provides the file object identifier and the virtual address offset of the data in the virtual block space; and

accessing the data associated with the file system object from the physical address based on the translation.

7. The data storage system of claim 6 , wherein:

each file system object is provided with a respective virtual block space in that the virtual block space for the file system object is independent of other virtual block spaces assigned to other file system objects; and

the file system object is provided with an exclusive view of an address space with the virtual block space to allow writing to any address in the virtual block space in connection with the file system object.

8. The data storage system of claim 6 , wherein:

the wear leveling comprises global wear leveling; and

performing the wear leveling comprises performing the global wear leveling prior to executing the translation.

9. The data storage system of claim 6 , wherein the controller is configured to cause: altering the data associated with the file system object by writing to a log structured file associated with the memory, wherein the physical address is the physical address of the memory.

10. The data storage system of claim 6 , wherein the controller is configured to cause: performing block allocation for storing and accessing data from the memory of the data storage system.

11. The data storage system of claim 6 , wherein the controller is configured to cause altering the data associated with the file system object using a flash translation layer by writing to a log-structured file of a log-structured file system of the memory, and the translation from the virtual address offset to the physical address for the data is based at least on global wear leveling performed by the flash translation layer.

12. The data storage system of claim 6 , wherein the controller is configured to cause accessing the data associated with the file system object for performing a modify operation followed by performing a write operation to the virtual address offset associated with the file system object.

13. The data storage system of claim 12 , wherein the modify operation for the data or a portion of the data is performed by a flash translation layer by using a log structured write only once between receiving the request for modifying the data or the portion of the data and completing the write operation to the physical address of the memory.

14. The data storage system of claim 6 , wherein the wear leveling allows the virtual address offset to be mapped to the physical address that is different from a physical address for being generated by a flash translation layer without the wear leveling to reduce wear caused by repeated data accesses to a same physical location on the memory.

15. The data storage system of claim 6 , wherein the controller is configured to cause performing garbage collection for using a log structured file system only in a translation layer.

16. The data storage system of claim 15 , wherein the controller is configured to cause the translation layer to perform access and writes to the memory using the log structured file system.

17. The data storage system of claim 6 , wherein the controller is configured to cause performing only a single address translation in a storage device software stack between receiving the request to access the data at a flash translation layer of the storage device software stack and accessing the data of the request at the memory.

18. An apparatus, comprising:

in response to receiving a request to access data:

means for converting the request to a file system object to be used to access the data;

means for providing a virtual block space for the file system object;

means for performing wear leveling; and

based on at least the wear leveling, means for executing a translation from a virtual address offset to a physical address of the data based on the virtual block space associated with a file object identifier and the virtual address offset, wherein the data is associated with the file system object, and wherein the file system object provides the file object identifier and the virtual address offset of the data in the virtual block space; and

means for accessing the data associated with the file system object from the physical address based on the translation.

19. The apparatus of claim 18 , wherein:

each file system object is provided with a respective virtual block space in that the virtual block space for the file system object is independent of other virtual block spaces assigned to other file system objects; and

the file system object is provided with an exclusive view of an address space with the virtual block space to allow writing to any address in the virtual block space in connection with the file system object.

20. The apparatus of claim 18 , wherein:

the wear leveling comprises global wear leveling; and

the means for performing wear leveling comprises means for performing the global wear leveling prior to executing the translation.

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 - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
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 →
RELEASE OF SECURITY INTEREST AT REEL 057651 FRAME 0296 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058981/0958 →
SECURITY INTEREST Recorded Sep 17, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 057651/0296 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2021
From: SKYERA, LLC
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 056767/0286 →
CHANGE OF NAME Recorded Jul 6, 2021
From: SKYERA, INC.
To: SKYERA, LLC
Reel/Frame 056772/0996 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2021
From: DANILAK, RADOSLAV; BOTHRA, AMIT; PRUTHI, ARVIND
To: SKYERA, INC.
Reel/Frame 056772/0992 →