IP Library Granted Patent US 8,392,689
Granted Patent B1
US 8,392,689 · App. 12/786,391 · Granted Mar 5, 2013

Address optimized buffer transfer requests

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 8,392,689
App. No.
12/786,391
Granted
Mar 5, 2013
Kind
B1
Abstract

In one embodiment, a data storage device comprises a buffer, a buffer manager, and a buffer client. The buffer client is configured to receive data to be stored in the buffer, to compute a difference between a bank boundary address of the buffer and a starting buffer address for the data, to generate a first data burst having a length equal to the computed difference and including a first portion of the data, and to send the first data burst to the buffer manager, wherein the buffer manager is configured to write the first data burst to the buffer.

Claims (46)

1. A data storage device, comprising:

a buffer;

a buffer manager; and

a buffer client configured to:

receive data to be stored in the buffer,

compute a difference between a bank boundary address of the buffer and a starting buffer address for the data,

generate a first data burst having a length equal to the computed difference and including a first portion of the data,

send the first data burst to the buffer manager,

generate a second data burst having a length corresponding to a burst count and including a second portion of the data, wherein the burst count indicates the length of the second data burst in relation to two bank lengths of the buffer and is updated each time the length of the second portion of the data increases to a next multiple of two bank lengths of the buffer, and

send the second data burst to the buffer manager;

wherein the buffer manager is configured to write the first data burst and the second data burst to the buffer.

2. The data storage device of claim 1 , wherein the buffer manager is configured to write the second portion of the data to the buffer by sending overlapping buffer commands to the buffer to concurrently transfer data from the buffer manager to a first bank of the buffer and prepare a second bank of the buffer for a subsequent data transfer from the buffer manager to the second bank.

3. The data storage device of claim 2 , wherein the second bank of the buffer is prepared for the subsequent data transfer by precharging the second bank.

4. The data storage device of claim 1 , wherein the second data burst is aligned with a bank boundary of the buffer.

5. The data storage device of claim 1 , wherein the buffer client is configured to generate a last data burst having a length less than two bank lengths of the buffer and including a last portion of the data, and to send the last data burst to the buffer manager, wherein the buffer manager is configured to write the last data burst to the buffer.

6. The data storage device of claim 5 , wherein one end of the last data burst is aligned with a bank boundary of the buffer.

7. The data storage device of claim 1 , wherein the buffer client comprises a host interface configured to receive the data from a host device.

8. The data storage device of claim 1 , wherein the buffer client comprises a storage media interface configured to receive the data from a storage media.

9. The data storage device of claim 8 , wherein the storage media comprises a hard disk.

10. A data storage device, comprising:

a buffer;

a buffer manager; and

a buffer client including a memory and configured to:

compute a difference between a bank boundary address of the buffer and a starting buffer address of data in the buffer,

generate a request for a first data burst having a length equal to the computed difference and including a first portion of the data in the buffer,

send the request for the first data burst to the buffer manager,

generate a request for a second data burst having a length corresponding to a burst count and including a second portion of the data, wherein the burst count indicates a length of the second data burst in relation to two bank lengths of the buffer and is updated each time an amount of available space in the memory of the buffer client increases to a next multiple of two bank lengths of the buffer, and

send the request for the second data burst to the buffer manager;

wherein, in response to the request for the first data burst, the buffer manager is configured to read the first data burst from the buffer and to transfer the first data burst to the buffer client, and

wherein, in response to the request for the second data burst, the buffer manager is configured to read the second data burst from the buffer and to transfer the second data burst to the buffer client.

11. The data storage device of claim 10 , wherein the buffer manager is configured to read the second data burst from the buffer by sending overlapping buffer commands to the buffer to concurrently transfer data from a first bank of the buffer to the buffer manager and prepare a second bank of the buffer for a subsequent data transfer from the second bank to the buffer manager.

12. The data storage device of claim 10 , wherein the second data burst is aligned with a bank boundary of the buffer.

13. A method for transferring data to a buffer, comprising:

receiving data to be stored in the buffer;

computing a difference between a bank boundary address of the buffer and a starting buffer address for the data;

generating a first data burst having a length equal to the computed difference and including a first portion of the data;

writing the first data burst to the buffer;

generating a second data burst having a length corresponding to a burst count and including a second portion of the data, wherein the burst count indicates the length of the second data burst in relation to two bank lengths of the buffer and is updated each time the second portion of the data increases to a next multiple of two bank lengths of the buffer; and

writing the second data burst to the buffer.

14. The method of claim 13 , wherein the writing the second data burst to the buffer comprises sending overlapping buffer commands to the buffer to concurrently transfer data to a first bank of the buffer and prepare a second bank of the buffer for a subsequent data transfer to the second bank.

15. The method of claim 14 , wherein the second bank of the buffer is prepared for the subsequent data transfer by precharging the second bank.

16. The method of claim 13 , wherein the second data burst is aligned with a bank boundary of the buffer.

17. The method of claim 13 , further comprising:

generating a last data burst having a length less than two bank lengths of the buffer and including a last portion of the data; and

writing the last data burst to the buffer.

18. The method of claim 17 , wherein one end of the last data burst is aligned with a bank boundary of the buffer.

Assignments (8)
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 038744 FRAME 0481 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0556 →
RELEASE OF SECURITY INTEREST Recorded Mar 5, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045501/0714 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038744/0281 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038722/0229 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2010
From: LOTT, GLENN A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 024432/0606 →