Prioritizing garbage collection and block allocation based on I/O history for logical address regions
First Claim
1. A method performed by a storage device having a storage medium and a storage controller, the method comprising:
- receiving, at the storage device, over a predetermined time period, a plurality of input/output (I/O) requests from a host, the plurality of I/O requests including read requests and write requests to be performed in a plurality of predefined regions in a logical address space of the host;
in accordance with the plurality of I/O requests received over the predetermined time period, performing at the storage controller of the storage device a set of operations, including;
identifying an idle logical address space region of the plurality of predefined regions in the logical address space of the host, wherein;
identifying the idle logical address space region comprises identifying a region, of the plurality of predefined regions in the logical address space of the host, that has not been accessed at least once by the plurality of I/O requests during the predetermined time period,the logical address space of the host includes logical block addresses organized in numerical order, andeach region in the logical address space of the host, including the identified idle logical address space region, includes a plurality of the logical block addresses; and
in accordance with the identification of the idle logical address space region, which is a respective predefined region of the plurality of predefined regions in the logical address space of the host;
identifying one or more data storage blocks, in the storage medium, that store data in the identified idle logical address space region, wherein identifying the one or more data storage blocks comprises mapping one or more logical addresses in the idle logical address space region to physical addresses in a physical address space of the storage device, andenabling garbage collection of the identified data storage blocks, in the storage medium of the storage device.
3 Assignments
0 Petitions
Accused Products
Abstract
Systems, methods and/or devices are used to enable prioritizing garbage collection and block allocation based on I/O history for logical address regions. In one aspect, the method includes (1) receiving, at a storage device, a plurality of input/output (I/O) requests from a host, the plurality of I/O requests including read requests and write requests to be performed in a plurality of regions in a logical address space of the host, (2) in accordance with the plurality of I/O requests over a predetermined time period, identifying an idle region of the plurality of regions in the logical address space of the host, and (3) in accordance with the identification of the idle region, enabling garbage collection of data storage blocks, in the storage device, that store data in the idle region.
553 Citations
19 Claims
-
1. A method performed by a storage device having a storage medium and a storage controller, the method comprising:
-
receiving, at the storage device, over a predetermined time period, a plurality of input/output (I/O) requests from a host, the plurality of I/O requests including read requests and write requests to be performed in a plurality of predefined regions in a logical address space of the host; in accordance with the plurality of I/O requests received over the predetermined time period, performing at the storage controller of the storage device a set of operations, including; identifying an idle logical address space region of the plurality of predefined regions in the logical address space of the host, wherein; identifying the idle logical address space region comprises identifying a region, of the plurality of predefined regions in the logical address space of the host, that has not been accessed at least once by the plurality of I/O requests during the predetermined time period, the logical address space of the host includes logical block addresses organized in numerical order, and each region in the logical address space of the host, including the identified idle logical address space region, includes a plurality of the logical block addresses; and in accordance with the identification of the idle logical address space region, which is a respective predefined region of the plurality of predefined regions in the logical address space of the host; identifying one or more data storage blocks, in the storage medium, that store data in the identified idle logical address space region, wherein identifying the one or more data storage blocks comprises mapping one or more logical addresses in the idle logical address space region to physical addresses in a physical address space of the storage device, and enabling garbage collection of the identified data storage blocks, in the storage medium of the storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A storage device, comprising:
-
a storage medium; a storage controller that includes one or more processors; and memory storing one or more programs, which when executed by the one or more processors cause the storage device to; receive, at the storage device, over a predetermined time period, a plurality of input/output (I/O) requests from a host, the plurality of I/O requests including read requests and write requests to be performed in a plurality of predefined regions in a logical address space of the host; at the storage controller, in accordance with the plurality of I/O requests received over the predetermined time period; identify an idle logical address space region of the plurality of predefined regions in the logical address space of the host, wherein; identifying the idle logical address space region comprises identifying a region, of the plurality of predefined regions in the logical address space of the host, that has not been accessed at least once by the plurality of I/O requests during the predetermined time period, the logical address space of the host includes logical block addresses organized in numerical order, and each region in the logical address space of the host, including the identified idle logical address space region, includes a plurality of the logical block addresses; and in accordance with the identification of the idle logical address space region, which is a respective predefined region of the plurality of predefined regions in the logical address space of the host; identify one or more data storage blocks, in the storage medium, that store data having logical addresses in the identified idle logical address space region, wherein identifying the one or more data storage blocks comprises mapping one or more logical addresses in the idle logical address space region to physical addresses in a physical address space of the storage system, and enable garbage collection of the identified data storage blocks, in the storage medium of the storage device. - View Dependent Claims (12, 13, 14)
-
-
15. A storage system, comprising:
-
a storage medium; a storage controller that includes one or more processors; and memory storing one or more programs, which when executed by the one or more processors cause the storage system to; receive, at a storage system, over a predetermined time period, a plurality of input/output (I/O) requests from a host, the plurality of I/O requests including read requests and write requests to be performed in a plurality of predefined regions in a logical address space of the host; at the storage controller, in accordance with the plurality of I/O requests received over the predetermined time period; identify an idle logical address space region of the plurality of predefined regions in the logical address space of the host, wherein; identifying the idle logical address space region comprises identifying a region, of the plurality of predefined regions in the logical address space of the host, that has not been accessed at least once by the plurality of I/O requests during the predetermined time period, the logical address space of the host includes logical block addresses organized in numerical order, and each region in the logical address space of the host, including the identified idle logical address space region, includes a plurality of the logical block addresses; and in accordance with the identification of the idle logical address space region, which is a respective predefined region of the plurality of predefined regions in the logical address space of the host; identify one or more data storage blocks, in the storage medium, that store data having logical addresses in the identified idle logical address space region, wherein identifying the one or more data storage blocks comprises mapping one or more logical addresses in the idle logical address space region to physical addresses in a physical address space of the storage system, and enable garbage collection of the identified data storage blocks, in the storage medium of the storage system.
-
-
16. A non-transitory computer readable storage medium, storing one or more programs configured for execution by one or more processors of a storage controller of a storage device, the one or more programs including instructions for:
-
receiving, at the storage device, a plurality of input/output (I/O) requests from a host, the plurality of I/O requests including read requests and write requests to be performed in a plurality of predefined regions in a logical address space of the host; at the storage controller, in accordance with the plurality of I/O requests received over the predetermined time period; identifying an idle logical address space region of the plurality of predefined regions in the logical address space of the host, wherein; identifying the idle logical address space region comprises identifying a region, of the plurality of predefined regions in the logical address space of the host, that has not been accessed at least once by the plurality of I/O requests during the predetermined time period, the logical address space of the host includes logical block addresses organized in numerical order, and each region in the logical address space of the host, including the identified idle logical address space region, includes a plurality of the logical block addresses; and in accordance with the identification of the idle logical address space region, which is a respective predefined region of the plurality of predefined regions in the logical address space of the host; identifying one or more data storage blocks, in a storage medium of the storage device, that store data having logical addresses in the identified idle logical address space region, wherein identifying the one or more data storage blocks comprises mapping one or more logical addresses in the idle logical address space region to physical addresses in a physical address space of the storage device, and enabling garbage collection of the identified data storage blocks, in the storage medium of the storage device. - View Dependent Claims (17, 18, 19)
-
Specification