IP Library Granted Patent US 9,696,916
Granted Patent B2
US 9,696,916 · App. 14/862,241 · Granted Jul 4, 2017

Techniques for reducing memory write operations using coalescing memory buffers and difference information

Inventor: Radoslav Danilak (Cupertino, CA)
Assignee: Seagate Technology LLC
G06F3/0616G06F3/0619G06F3/0656G06F3/0659G06F3/0679G06F3/0688G06F12/0246G11C16/349G11C16/3495
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,696,916
App. No.
14/862,241
Granted
Jul 4, 2017
Kind
B2
Abstract

The present disclosure relates to examples of reducing memory write operations using coalescing memory buffers. In one example implementation according to aspects of the present disclosure, a method comprises computing a difference between a current state of data of at least one block of a storage device to which data is to be written and a state that would result from the write operation. The method further comprises populating at least one of one or more coalescing memory buffers with difference information associated with the difference and to be used to update an associated one of the blocks. Additionally, the method comprises selectively writing the difference information in the coalescing memory buffers to the storage devices, based on a determination of fullness of the coalescing memory buffers. The coalescing memory buffers are separate from the storage devices.

Claims (41)

1. An apparatus comprising:

a coalescing memory buffer; and

a difference computation module programmed to perform the steps of:

computing a difference between a current state of data of at least one block of a storage device to which data is to be written by a write operation and a state that would result from the write operation,

populating the coalescing memory buffer with difference information associated with the difference and to be used to update an associated one of the at least one block of the storage device, and

selectively writing the difference information in the coalescing memory buffer to the storage device, based on a determination of fullness of the coalescing memory buffer,

wherein the coalescing memory buffer is separate from the storage device.

2. The apparatus of claim 1 , wherein the difference computation module is further programmed to perform the step of reconstructing a current state of data of the at least one block of the storage device.

3. The apparatus of claim 1 , wherein a command is received from a host processor, and the apparatus is coupled between the host processor and the storage device.

4. The apparatus of claim 1 , wherein the difference information includes a location of the write operation.

5. The apparatus of claim 1 , wherein the difference computation module is separate from the storage device.

6. The apparatus of claim 1 , wherein the storage device comprises flash memory.

7. The apparatus of claim 1 , wherein the difference computation module is further programmed to perform the steps of:

receiving a command initiating an operation to be applied to the storage device; and

identifying the operation as a write operation directed to the at least one block of the storage device.

8. A method comprising:

computing a difference between a current state of data of at least one block of a storage device to which data is to be written and a state that would result from a write operation;

populating at least one coalescing memory buffer with difference information associated with the difference and to be used to update an associated block of the storage device; and

selectively writing the difference information in the coalescing memory buffers to the storage device, based on a determination of fullness of the coalescing memory buffer,

wherein the at least one coalescing memory buffer is separate from the storage device.

9. The method of claim 8 , further comprising reconstructing a current state of data of the at least one block of the storage device.

10. The method of claim 8 , wherein a difference computation module performs the steps of the computing, the populating, and the selectively writing.

11. The method of claim 10 , wherein a command is received from a host processor, and the difference computation module and the at least one coalescing memory buffer is coupled between the host processor and the storage device.

12. The method of claim 8 , wherein the difference information includes a location of the write operation.

13. The method of claim 10 , wherein the difference computation module is separate from the storage device.

14. The method of claim 8 , wherein the storage device comprises flash memory.

15. The method of claim 8 , further comprising:

receiving a command initiating an operation to be applied to the storage device; and

identifying the operation as a write operation directed to the at least one block of the storage device.

16. A non-transitory computer readable medium having a set of instructions stored therein which when executed by a processing device causes the processing device to perform the steps comprising:

computing a difference between a current state of data of at least one block of a storage device to which data is to be written and a state that would result from a write operation;

populating a coalescing memory buffer with difference information associated with the difference and to be used to update an associated one of the at least one block of the storage device; and

selectively writing the difference information in the coalescing memory buffer to the storage device, based on a determination of fullness of the coalescing memory buffer,

wherein the coalescing memory buffer is separate from the storage device.

17. The non-transitory computer readable medium of claim 16 , wherein the steps further comprise:

reconstructing a current state of data of the at least one block of the storage device.

18. The non-transitory computer readable medium of claim 16 , wherein the difference information includes a location of the write operation.

19. The non-transitory computer readable medium of claim 16 , wherein at least one of the storage device comprises flash memory.

20. The non-transitory computer readable medium of claim 16 , wherein the steps further comprise:

receiving a command initiating an operation to be applied to the storage device; and

identifying the operation as a write operation directed to the at least one block of the storage device.

Continuity (7)
Continuation 14201020 · Mar 7, 2014
Continuation 13840609 · Mar 15, 2013
Continuation 13042231 · Mar 7, 2011
Continuation 11852104 · Sep 7, 2007
Provisional Application 60878242 · Jan 3, 2007
Provisional Application 60860843 · Nov 24, 2006
Related Publication 20160011800A1 · Jan 14, 2016