IP Library Granted Patent US 9,569,351
Granted Patent B2
US 9,569,351 · App. 13/027,633 · Granted Feb 14, 2017

Storing corresponding data units in a common storage unit

Inventors: Jonathan Williams Haines (Boulder, CO); Timothy R. Feldman (Louisville, CO)
Assignee: SEAGATE TECHNOLOGY LLC
G06F12/0246
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 9,569,351
App. No.
13/027,633
Granted
Feb 14, 2017
Kind
B2
Abstract

A storage device controller may segregate data units that are typically accessed together to a common storage unit. In one example, a storage device includes a control unit configured to receive a plurality of logical blocks to be stored in the storage device, wherein a first set of addresses comprises logical block addresses (LBAs) of the plurality of logical blocks, and a non-volatile memory configured to store logical blocks in a plurality of storage units, wherein one of the plurality of storage units includes logical blocks corresponding to a second set of addresses. The control unit may determine an intersection of the first set of addresses with the second set of addresses and to store each of the logical blocks having LBAs in the determined intersection of addresses in a common storage unit of the storage device, wherein the common storage unit comprises one of the plurality of storage units.

Claims (44)

1. A method comprising:

receiving, by a storage device, a plurality of logical blocks to be stored in the storage device, wherein a first set of addresses comprises logical block addresses (LBAs) of the plurality of logical blocks;

determining an intersection of the first set of addresses with a second set of addresses, wherein the second set of addresses comprises LBAs of logical blocks in a storage unit of the storage device;

comparing the size of the determined intersection with a threshold size; and

storing each of the logical blocks having LBAs in the determined intersection of addresses in a common storage unit of the storage device, wherein the common storage unit is separate from the storage unit in which the logical blocks corresponding to the second set of addresses are stored when the size of the determined intersection is equal to or greater than the threshold size.

2. The method of claim 1 , further comprising storing the logical blocks having LBAs outside of the determined intersection in one or more storage units other than the common storage unit of the storage device.

3. The method of claim 1 , further comprising:

determining whether the logical blocks having LBAs in the determined intersection fill the common storage unit; and

when the logical blocks do not fill the common storage unit, storing one or more of the received plurality of logical blocks that do not have LBAs in the intersection in the common storage unit.

4. The method of claim 1 , wherein storing each of the logical blocks comprises storing each of the logical blocks having addresses in the determined intersection in order of the addresses of the LBAs in the common storage unit.

5. The method of claim 1 , wherein storing each of the logical blocks comprises storing each of the logical blocks having addresses in the determined intersection in an order in which the LBAs were received.

6. The method of claim 1 , wherein the plurality of logical blocks comprises a first plurality of logical blocks, wherein the common storage unit comprises a first common storage unit, and wherein the determined intersection comprises a first determined intersection, the method further comprising:

receiving a second plurality of logical blocks to be stored in the storage device, wherein a third set of addresses comprises LBAs of the second plurality of logical blocks;

determining a second intersection of the third set of addresses with the first determined intersection; and

storing each of the logical blocks having addresses in the second determined intersection of addresses in a second common storage unit of the storage device.

7. The method of claim 6 , further comprising storing the logical blocks having addresses outside of the second determined intersection in one or more storage units other than the common storage unit of the storage device.

8. The method of claim 1 , wherein receiving the plurality of logical blocks comprises receiving each of the plurality of logical blocks in close temporal proximity to each of the others of the plurality of logical blocks.

9. The method of claim 1 , wherein receiving the plurality of logical blocks comprises receiving each of the plurality of logical blocks in close spatial proximity to each of the others of the plurality of logical blocks.

10. A storage device comprising:

a control unit configured to receive a plurality of logical blocks to be stored in the storage device, wherein a first set of addresses comprises logical block addresses (LBAs) of the plurality of logical blocks; and

a non-volatile memory configured to store logical blocks in a plurality of storage units, wherein one of the plurality of storage units includes logical blocks corresponding to a second set of addresses,

wherein the control unit is configured to determine an intersection of the first set of addresses with the second set of addresses, to compare the size of the determined intersection with a threshold size, and to store each of the logical blocks having LBAs in the determined intersection of addresses in a common storage unit of the storage device, wherein the common storage unit comprises one of the plurality of storage units and is separate from the one of the plurality of storage units including the logical blocks corresponding to the second set of addresses when the size of the determined intersection is equal to or greater than the threshold size.

11. The storage device of claim 10 , wherein the control unit is configured to determine whether the logical blocks having LBAs in the determined intersection fill the common storage unit and, when the logical blocks do not fill the common storage unit, to store one or more of the received plurality of logical blocks that do not have LBAs in the intersection in the common storage unit.

12. The storage device of claim 10 , wherein the control unit is configured to store each of the logical blocks having addresses in the determined intersection in order of the addresses of the logical blocks in the common storage unit.

13. The storage device of claim 10 , wherein the control unit is configured to store each of the logical blocks having addresses in the determined intersection in an order in which the logical blocks were received.

14. The storage device of claim 10 , wherein the plurality of logical blocks comprises a first plurality of logical blocks, wherein the determined intersection comprises a first determined intersection, wherein the common storage unit comprises a first common storage unit, and wherein the control unit is configured to receive a second plurality of logical blocks to be stored in the storage device, wherein a third set of addresses comprises LBAs of the second plurality of logical blocks, determine a second intersection of the third set of addresses with the first determined intersection, and store each of the LBAs having addresses in the second determined intersection of addresses in a second common storage unit comprising one of the plurality of storage units of the storage device.

15. The storage device of claim 10 , wherein the control unit is configured to receive each of the plurality of logical blocks in close temporal proximity to each of the others of the plurality of logical blocks.

16. The storage device of claim 10 , wherein the control unit is configured to receive each of the plurality of logical blocks in close spatial proximity to each of the others of the plurality of logical blocks.

17. A system according to claim 10 , comprising a computing device coupled to the storage device, the computing device comprising the control unit for controlling the storage device.

18. A computer-readable storage medium encoded with instructions that cause a processor to:

receive a plurality of logical blocks to be stored in a storage device, wherein a first set of addresses comprises logical block addresses (LBAs) of the plurality of logical blocks;

determine an intersection of the first set of addresses with a second set of addresses, wherein the second set of addresses comprises LBAs of logical blocks in a storage unit of the storage device;

compare the size of the determined intersection with a threshold size; and

store each of the logical blocks having LBAs in the determined intersection of addresses in a common storage unit of the storage device, wherein the common storage unit is separate from the one of the plurality of storage units including the logical blocks corresponding to the second set of addresses when the size of the determined intersection is equal to or greater than the threshold size.

19. The computer-readable storage medium of claim 18 , further comprising instructions to:

determine whether the logical blocks having LBAs in the determined intersection fill the common storage unit; and

when the logical blocks do not fill the common storage unit, store one or more of the received plurality of logical blocks that do not have LBAs in the intersection in the common storage unit.

20. The computer-readable storage medium of claim 18 , wherein the instructions to store each of the logical blocks comprise instructions to store each of the logical blocks having addresses in the determined intersection in order of the addresses of the LBAs that are to be stored in the common storage unit.

21. The computer-readable storage medium of claim 18 , wherein the instructions to store each of the logical blocks comprise instructions to store each of the logical blocks having addresses in the determined intersection in an order in which the LBAs were received.

22. The computer-readable storage medium of claim 18 , wherein the plurality of logical blocks comprises a first plurality of logical blocks, wherein the common storage unit comprises a first common storage unit, and wherein the determined intersection comprises a first determined intersection, the computer-readable storage medium further comprising instructions to:

receive a second plurality of logical blocks to be stored in the storage device, wherein a third set of addresses comprises LBAs of the second plurality of logical blocks;

determine a second intersection of the third set of addresses with the first determined intersection; and

store each of the logical blocks having addresses in the second determined intersection of addresses in a second common storage unit of the storage device.

23. The computer-readable storage medium of claim 18 , wherein the instructions to receive the plurality of logical blocks comprise instructions to receive each of the plurality of logical blocks in close spatial proximity to each of the others of the plurality of logical blocks.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2011
From: HAINES, JONATHAN W.; FELDMAN, TIMOTHY R.
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 025908/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 15, 2011
From: HAINES, JONATHAN W.; FELDMAN, TIMOTHY R.
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 025809/0928 →
Continuity (2)
Provisional Application 61406470 · Oct 25, 2010
Related Publication 20120102297A1 · Apr 26, 2012