Unaligned data coalescing
First Claim
Patent Images
1. A method for unaligned data coalescing, comprising:
- receiving a write command comprising a first write subcommand associated with a first unaligned portion of data, a second write subcommand associated with a second unaligned portion of data, and a third write subcommand associated with an aligned portion of data;
writing the aligned portion of data to a first page in a memory device, while coalescing the first unaligned portion of data and the second unaligned portion of data by locating the first unaligned portion of data and the second unaligned portion of data in a buffer on a controller, wherein the first unaligned portion of data and the second unaligned portion of data are stored in the buffer on the controller, remain in the controller prior to coalescing the first unaligned portion of data and the second unaligned portion of data, and are in the buffer when coalesced;
writing the first unaligned portion of data and the second unaligned portion of data to a second page in a memory device;
storing logical addresses associated with the first unaligned portion of data and the second unaligned portion of data in a coalescing data structure; and
storing an indicator to the first unaligned portion of data and an indicator to the second unaligned portion of data in the coalescing data structure.
8 Assignments
0 Petitions
Accused Products
Abstract
The present disclosure includes methods and systems for coalescing unaligned data. One method includes receiving a first write command associated with a first unaligned portion of data, receiving a second write command associated with a second unaligned portion of data, and coalescing the first unaligned portion of data and the second unaligned portion of data, wherein coalescing includes writing the first unaligned portion of data and the second unaligned portion of data to a page in a memory device.
27 Citations
30 Claims
-
1. A method for unaligned data coalescing, comprising:
-
receiving a write command comprising a first write subcommand associated with a first unaligned portion of data, a second write subcommand associated with a second unaligned portion of data, and a third write subcommand associated with an aligned portion of data; writing the aligned portion of data to a first page in a memory device, while coalescing the first unaligned portion of data and the second unaligned portion of data by locating the first unaligned portion of data and the second unaligned portion of data in a buffer on a controller, wherein the first unaligned portion of data and the second unaligned portion of data are stored in the buffer on the controller, remain in the controller prior to coalescing the first unaligned portion of data and the second unaligned portion of data, and are in the buffer when coalesced; writing the first unaligned portion of data and the second unaligned portion of data to a second page in a memory device; storing logical addresses associated with the first unaligned portion of data and the second unaligned portion of data in a coalescing data structure; and storing an indicator to the first unaligned portion of data and an indicator to the second unaligned portion of data in the coalescing data structure. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for unaligned data coalescing, comprising:
-
receiving a first write command associated with an unaligned portion of data; receiving a second write command associated with an aligned portion of data; writing the aligned portion of data to a first memory device while coalescing the unaligned portion of data with data from a third write command including a logical address corresponding to a same page of data associated with a logical address of the unaligned portion of data by locating the unaligned portion of data and the data from the third write command in a buffer on a controller, wherein the unaligned portion of data and the data from the third write command are stored in a buffer on a controller, remain in the controller prior to coalescing the unaligned portion of data and the data from third write command, and are in the buffer when coalesced; creating an indicator that refers to a logical page corresponding to a logical address associated with the unaligned portion of data; storing the logical address associated with the unaligned portion of data in a coalescing data structure; and storing the indicator to the unaligned portion of data in the coalescing data structure. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A method for unaligned data coalescing, comprising:
-
receiving a first write command associated with a first unaligned portion of data; receiving a second write command associated with an aligned portion of data; determining a logical page corresponding to a logical address associated with the first unaligned portion of data is a logical page referred to by an indicator associated with a second unaligned portion of data associated with a third write command; writing the aligned portion of data to a memory device while coalescing the first unaligned portion of data and the second unaligned portion of data by locating the first unaligned portion of data and the second unaligned portion of data in a buffer on a controller, wherein the first unaligned portion of data and the second unaligned portion of data are stored in the buffer on the controller, remain in the controller prior to coalescing the first unaligned portion of data and the second unaligned portion of data, and are in the buffer when coalesced; storing the logical address associated with the first unaligned portion of data and a logical address associated with the second unaligned portion of data in a coalescing data structure; and storing an indicator associated with the first unaligned portion of data and the indicator associated with the second unaligned portion of data in the coalescing data structure. - View Dependent Claims (15, 16)
-
-
17. A system, comprising:
-
an array of memory cells; and a controller operably coupled to the array and configured to; receive a first write command associated with a first unaligned portion of data; receive a second write command associated with a second unaligned portion of data; receive a third write command associated with an aligned portion of data; write the aligned portion of data to the array while; coalescing the first unaligned portion of data with data from a write command including a logical address corresponding to a same page of data associated with a logical address of the first unaligned portion of data by locating the first unaligned portion of data and the data from the write command including the logical address corresponding to the same page of data associated with the logical address of the first unaligned portion of data in a buffer on the controller, wherein the first unaligned portion of data and the data from the write command including the logical address corresponding to the same page of data associated with the logical address of the first unaligned portion of data are stored in the buffer on the controller, remain in the controller prior to coalescing the first unaligned portion of data and the data from the write command including the logical address corresponding to the same page of data associated with the logical address of the first unaligned portion of data, and are in the buffer when coalesced; and coalescing the second unaligned portion of data with data from a write command including a logical address corresponding to a same page of data associated with a logical address of the second unaligned portion of data by locating the second unaligned portion of data and the data from the write command including the logical address corresponding to the same page of data associated with the logical address of the second unaligned portion of data in the buffer on a controller, wherein the second unaligned portion of data and the data from the write command including the logical address corresponding to the same page of data associated with the logical address of the second unaligned portion of data are stored in the buffer on the controller, remain in the controller prior to coalescing the second unaligned portion of data and the data from the write command including the logical address corresponding to the same page of data associated with the logical address of the second unaligned portion of data, and are in the buffer when coalesced; store logical addresses associated with the first unaligned portion of data and the second unaligned portion of data in a coalescing data structure; and store indicators to the first unaligned portion of data and the second unaligned portion of data in the coalescing data structure. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
-
25. A system, comprising:
-
an array of memory cells; and a controller operably coupled to the array and configured to; receive a first write command associated with a first unaligned portion of data; receive a second write command associated with an aligned portion of data; determine that a logical page corresponding to a logical address associated with the first unaligned portion of data is a logical page referred to by an indicator associated with a second unaligned portion of data associated with a third write command; write the aligned portion of data to the array of memory cells while coalescing the first unaligned portion of data and the second unaligned portion of data by locating the first unaligned portion of data and the second unaligned portion of data in a buffer on the controller, wherein the first unaligned portion of data and the second unaligned portion of data are stored in the buffer on the controller, remain in the controller prior to coalescing the first unaligned portion of data and the second unaligned portion of data, and are in the buffer when coalesced; store the logical address associated with the first unaligned portion of data and a logical address associated with the second unaligned portion of data in a coalescing data structure; and store an indicator associated with the first unaligned portion of data and the indicator associated with the second unaligned portion of data in the coalescing data structure. - View Dependent Claims (26, 27, 28, 29)
-
-
30. A system, comprising:
-
an array of memory cells; and a controller having a buffer and operably coupled to the array and the controller being configured to; receive a write command associated with a first unaligned portion of data; receive a write command associated with an aligned portion of data; write the aligned portion of data to the array of memory cells; store an indicator in the buffer that refers to a logical page corresponding to a logical address associated with the first unaligned portion of data; coalesce, while writing the aligned portion of data to the array of memory cells, the first unaligned portion of data and a second unaligned portion of data associated with a subsequent write command responsive to at least a logical page corresponding to a logical address associated with the second unaligned portion of data being the logical page corresponds to the first unaligned portion of data referred to by the indicator by locating the first unaligned portion of data and the second unaligned portion of data in the buffer on the controller, wherein the first unaligned portion of data and the second unaligned portion of data are stored in the buffer on the controller, remain in the controller prior to the first unaligned portion of data and the second unaligned portion of data being coalesced, and are in the buffer when coalesced; store the logical address associated with the first unaligned portion of data and the logical address associated with the second unaligned portion of data in a coalescing data structure; and store the indicator to the first unaligned portion of data and an indicator to the second unaligned portion of data in the coalescing data structure.
-
Specification