IP Library Granted Patent US 10,440,117
Granted Patent B2
US 10,440,117 · App. 15/875,474 · Granted Oct 8, 2019

Byte alignment in data storage devices

Inventor: Christopher J. Squires (Boulder, CO)
Assignee: Western Digital Technologies, Inc.
H04L67/1097H04L65/4069H04L65/4084H04L65/602
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,440,117
App. No.
15/875,474
Granted
Oct 8, 2019
Kind
B2
Abstract

To provide enhanced operation of data storage devices and systems, various systems, methods, and firmware are provided herein. In a first example, a data storage device is presented. The data storage device includes a network interface configured to receive a data stream for storage on a storage medium, the data stream comprising meta data that precedes payload data. The data storage device includes a processing system configured to process at least the meta data when writing the data stream from the network interface to a memory to identify a data gap for the data stream to establish a byte alignment of at least the payload data in the memory. The processing system is also configured to insert the data gap in the memory and store the data stream in the memory.

Claims (38)

1. A system comprising:

a storage device; and

a processor associated with the storage device, the processor configured to:

buffer a data stream in a memory of the storage device, wherein the data stream comprises metadata and a payload, the payload comprising an initial portion and a subsequent portion;

upon buffering the initial portion and before buffering the subsequent portion, identify a misalignment between the initial portion and a desired byte alignment;

insert a first gap in the memory after the initial portion to achieve the desired byte alignment for the subsequent portion;

buffer the subsequent portion in the memory separated from the initial portion by the first gap; and

after the initial portion and the subsequent portion are buffered in the memory, write the initial portion and the subsequent portion from the memory to a non-transitory storage medium of the storage device, wherein the subsequent portion is written to the non-transitory storage medium in the desired byte alignment.

2. The system of claim 1 , wherein the processor is further configured to, prior to writing the initial portion and the subsequent portion from the memory to the non-transitory storage medium, re-buffer the initial portion in the memory to achieve the desired byte alignment of the initial portion.

3. The system of claim 2 , wherein the processor is further configured to insert a second gap between the metadata and the initial portion to achieve the desired byte alignment for the initial portion.

4. The system of claim 1 , wherein the first gap is between the initial portion and the subsequent portion of the payload.

5. The system of claim 4 , wherein the data stream comprises a network file system (NFS) stream.

6. The system of claim 1 , wherein the processor is associated with a Transmission Control Protocol Offload Engine (TOE) module of the storage device, and wherein the TOE processes the metadata to identify the misalignment due to the metadata.

7. The system of claim 1 , wherein the data stream is received by a network interface associated with the storage device, and wherein the processor receives the data stream from the network interface.

8. The system of claim 1 , wherein the desired byte alignment is based on a sub-division of the non-transitory storage medium.

9. The system of claim 8 , wherein the sub-division of the non-transitory storage medium comprises one of a sector size, a block size, or a page size.

10. A method comprising:

buffering a data stream in a memory of a storage device, wherein the data stream comprises metadata and a payload, and wherein the payload comprises an initial portion and a subsequent portion;

identifying, upon buffering the initial portion and before buffering the subsequent portion, a misalignment between the initial portion and a desired byte alignment;

inserting a first gap in the memory after the initial portion to achieve the desired byte alignment for the subsequent portion;

buffering the subsequent portion in the memory separated from the initial portion by the first gap; and

after the initial portion and the subsequent portion are buffered in the memory, writing the initial portion and the subsequent portion from the memory to a non-transitory storage medium of the storage device, wherein the subsequent portion is written to the non-transitory storage medium in the desired byte alignment.

11. The method of claim 10 , further comprising:

re-buffering the initial portion in the memory to achieve the desired byte alignment of the initial portion prior to writing the initial portion and the subsequent portion from the memory to the non-transitory storage medium.

12. The method of claim 11 , wherein the initial portion is immediately preceded by the metadata and a second gap is inserted between the metadata and the initial portion during the re-buffering.

13. The method of claim 10 , wherein the data stream comprises a network file system (NFS) stream.

14. The method of claim 10 , wherein the data stream is received by a network interface associated with the storage device, and wherein a processor associated with the storage device receives the data stream from the network interface.

15. The method of claim 10 , wherein the desired byte alignment is based on a sub-division of the non-transitory storage medium.

16. The method of claim 15 , wherein the sub-division of the non-transitory storage medium comprises one of a sector size, a block size, or a page size.

17. A non-transitory computer-readable media having computer-readable instructions stored thereon that when executed by a processor associated with a storage device cause the processor to:

buffer a data stream in a memory of the storage device, wherein the data stream comprises metadata and a payload, the payload comprising an initial portion and a subsequent portion;

upon buffering the initial portion and before buffering the subsequent portion, identify a misalignment between the initial portion and a desired byte alignment;

insert a first gap in the memory after the initial portion to achieve the desired byte alignment for the subsequent portion;

buffer the subsequent portion in the memory separated from the initial portion by the first gap; and

after the initial portion and the subsequent portion are buffered in the memory, write the initial portion and the subsequent portion from the memory to a non-transitory storage medium of the storage device, wherein the subsequent portion is written to the non-transitory storage medium in the desired byte alignment.

18. The non-transitory computer-readable media of claim 17 , wherein the data stream is received by a network interface associated with the storage device, and wherein the processor receives the data stream from the network interface.

19. The non-transitory computer-readable media of claim 17 , wherein the processor is associated with a Transmission Control Protocol Offload Engine (TOE) module of the storage device, and wherein the TOE processes the metadata information to identify the misalignment due to the metadata.

20. The non-transitory computer-readable media of claim 17 , wherein prior to writing the initial portion and the subsequent portion from the memory to the non-transitory storage medium, the processor re-buffers the initial portion in the memory to achieve the desired byte alignment of the initial portion.

Assignments (6)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2020
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 053555/0014 →
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 Aug 27, 2019
From: SQUIRES, CHRISTOPHER J.
To: HGST NETHERLANDS B.V.
Reel/Frame 050187/0535 →
Cited By (1)
US 12,306,763