Container marker scheme for reducing write amplification in solid state devices
First Claim
Patent Images
1. A solid state storage device, comprising:
- a plurality of blocks configured as storage memory for a solid state storage device, each block comprising a plurality of data pages; and
a controller comprising integrated circuits configured to operate the solid state storage device;
wherein a free block of the plurality of blocks is assigned an integer number being a marker level by the controller;
wherein, for a particular data page of the plurality of data pages, each particular data page is written to a block of the plurality of blocks with the marker level corresponding to a level of dynamicity calculated by the controller for that particular data page;
wherein the marker level of the block indicates the dynamicity, being the frequency of being updated, of all data pages stored on that block; and
wherein the data pages of a same dynamicity are placed together;
wherein, when a valid data page is to be relocated from an occupied block to a new block, the controller is configured to;
denote a previous marker level for the valid data page as r and a new marker level for the valid data page as r′
;
determine that the valid data page is stored in the new block corresponding to the new marker level r′
=r−
1 when r>
0, where 0 is a highest static level; and
determine that the valid data page is stored in the new block corresponding to the new marker level r′
=0 in any case when r>
0 is not true.
2 Assignments
0 Petitions
Accused Products
Abstract
A solid state storage device and method are provided. Multiple blocks are configured as storage memory for a solid state storage device, and each block includes multiple pages. A controller is configured to operate the solid state storage device. A free block of the multiple blocks is assigned a marker level by the controller. For a particular page of the multiple pages, each particular page of data is written to a block of the multiple blocks with a marker level corresponding to a level of dynamicity calculated by the controller for that particular page.
-
Citations
24 Claims
-
1. A solid state storage device, comprising:
-
a plurality of blocks configured as storage memory for a solid state storage device, each block comprising a plurality of data pages; and a controller comprising integrated circuits configured to operate the solid state storage device; wherein a free block of the plurality of blocks is assigned an integer number being a marker level by the controller; wherein, for a particular data page of the plurality of data pages, each particular data page is written to a block of the plurality of blocks with the marker level corresponding to a level of dynamicity calculated by the controller for that particular data page; wherein the marker level of the block indicates the dynamicity, being the frequency of being updated, of all data pages stored on that block; and wherein the data pages of a same dynamicity are placed together; wherein, when a valid data page is to be relocated from an occupied block to a new block, the controller is configured to; denote a previous marker level for the valid data page as r and a new marker level for the valid data page as r′
;determine that the valid data page is stored in the new block corresponding to the new marker level r′
=r−
1 when r>
0, where 0 is a highest static level; anddetermine that the valid data page is stored in the new block corresponding to the new marker level r′
=0 in any case when r>
0 is not true.
-
-
2. A solid state storage device, comprising:
-
a plurality of blocks configured as storage memory for a solid state storage device; and a controller comprising integrated circuits configured to operate the solid state storage device; wherein when writing data addressed to a logical block address, the controller is operative to; determine a previous marker level for the logical block address; and write the data to a free block of the plurality of blocks, the free block having a marker level of the previous marker level increased by 1 or more; wherein, when a valid data page is to be relocated from an occupied block to a new block, the controller is configured to; denote a previous marker level for the valid data page as r and a new marker level for the valid data page as r′
;determine that the valid data page is stored in the new block corresponding to the new marker level r′
=r−
1 when r>
0, where 0 is a highest static level; anddetermine that the valid data page is stored in the new block corresponding to the new marker level r′
=0 in any case when r>
0 is not true. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A solid state storage device, comprising:
-
a plurality of blocks configured as memory for a solid state storage device; and a controller comprising integrated circuits configured to operate the solid state storage device; wherein performing a write request to relocate valid data pages of a block of the plurality of blocks, the controller is operative to; determine a previous marker level for the block of the plurality of blocks; and write the valid data pages to a free block of the plurality of blocks, the free block having a marker level of the previous marker level decreased by 1 or more; wherein, when a valid data page is to be relocated from an occupied block to a new block, the controller is configured to; denote a previous marker level for the valid data page as r and a new marker level for the valid data page as r′
;determine that the valid data page is stored in the new block corresponding to the new marker level r′
=r−
1 when r>
0, where 0 is a highest static level; anddetermine that the valid data page is stored in the new block corresponding to the new marker level r′
=0 in any case when r>
0 is not true. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A method for a marking scheme in a solid state storage device, comprising:
-
receiving a request to write data addressed to a logical block address of the solid state storage device of a computer, the solid state storage drive having a plurality of blocks configured as memory, wherein a controller is configured to operate the solid state storage device; determining a previous marker level for the logical block address; and writing the data to a free block of the plurality of blocks, the free block having a marker level of the previous marker level increased by 1 or more; wherein, when a valid data page is to be relocated from an occupied block to a new block, the controller is configured to; denote a previous marker level for the valid data page as r and a new marker level for the valid data page as r′
;determine that the valid data page is stored in the new block corresponding to the new marker level r′
=r−
1 when r>
0, where 0 is a highest static level; anddetermine that the valid data page is stored in the new block corresponding to the new marker level r′
=0 in any case when r>
0 is not true. - View Dependent Claims (21)
-
-
22. A method for a marking scheme in a solid state storage device, comprising:
-
receiving a write request to relocate valid data pages of a block of a plurality of blocks of the solid state storage device of a computer, the solid state storage device having the plurality of blocks configured as memory, wherein a controller is configured to operate the solid state storage device; determining a previous marker level for the block of the plurality of blocks; and writing the valid data pages to a free block of the plurality of blocks, the free block having a marker level of the previous marker level decreased by 1 or more; wherein, when a valid data page is to be relocated from an occupied block to a new block, the controller is configured to; denote a previous marker level for the valid data page as r and a new marker level for the valid data page as r′
;determine that the valid data page is stored in the new block corresponding to the new marker level r′
=r−
1 when r>
0, where 0 is a highest static level; anddetermine that the valid data page is stored in the new block corresponding to the new marker level r′
=0 in any case when r>
0 is not true. - View Dependent Claims (23)
-
-
24. A solid state storage device, comprising:
-
a plurality of blocks configured as storage memory for a solid state storage device, each block comprising a plurality of data pages; and a controller comprising integrated circuits configured to operate the solid storage device; wherein a data placement scheme is implemented by the controller, such that data pages with a similar update frequency, being a dynamicity, are grouped and written to a same block, and each block has a marker indicating the dynamicity of the data pages stored on the block; wherein the controller maintains the marker for each block in a dynamic random access memory (DRAM) or stores the marker on the block; wherein, when a valid data page is to be relocated from an occupied block to a new block, the controller is configured to; denote a previous marker level for the valid data page as r and a new marker level for the valid data page as r′
;determine that the valid data page is stored in the new block corresponding to the new marker level r′
=r−
1 when r>
0, where 0 is a highest static level; anddetermine that the valid data page is stored in the new block corresponding to the new marker level r′
=0 in any case when r>
0 is not true.
-
Specification