Identification of hot regions to enhance performance and endurance of a non-volatile storage device
First Claim
1. A method, comprising:
- 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; and
performing one or more operations for each region of the plurality of regions in the logical address space of the host, wherein each region includes two or more logical block addresses (LBAs), including;
determining whether the region in the logical address space of the host is accessed by the plurality of I/O requests more than a predetermined threshold number of times during a predetermined time period;
in accordance with a determination that the region in the logical address space of the host is accessed more than the predetermined threshold number of times during the predetermined time period, marking the region in the logical address space of the host with a hot region indicator; and
while the region in the logical address space of the host is marked with the hot region indicator,identifying open physical blocks, comprising physical blocks, to which logical addresses in the region are mapped using a logical address to physical address mapping, that are not full and that are available for storing additional data while retaining data already stored therein; and
based on the identifying of open physical blocks to which logical addresses in the region are mapped, marking each of the identified open physical blocks with a hot block indicator, wherein the hot block indicator for a respective open physical block is distinct from the hot region indicator for the region in the logical address space of the host, and each block of the identified open physical blocks includes a plurality of pages and corresponds to a predefined range of physical addresses in a physical address space of the storage device;
wherein at least one region marked with the hot region indicator includes one or more logical addresses mapped to a physical block that is not open, and one or more logical addresses mapped to a physical block that is open.
3 Assignments
0 Petitions
Accused Products
Abstract
Systems, methods and/or devices are used to enable identification of hot regions to enhance performance and endurance of a non-volatile storage device. In one aspect, the method includes (1) receiving a plurality of input/output (I/O) requests to be performed in a plurality of regions in a logical address space of a host, and (2) performing one or more operations for each region of the plurality of regions in the logical address space of the host, including (a) determining whether the region is accessed by the plurality of I/O requests more than a predetermined threshold number of times during a predetermined time period, (b) if so, marking the region with a hot region indicator, and (c) while the region is marked with the hot region indicator, identifying open blocks associated with the region, and marking each of the identified open blocks with a hot block indicator.
-
Citations
22 Claims
-
1. A method, comprising:
-
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; and performing one or more operations for each region of the plurality of regions in the logical address space of the host, wherein each region includes two or more logical block addresses (LBAs), including; determining whether the region in the logical address space of the host is accessed by the plurality of I/O requests more than a predetermined threshold number of times during a predetermined time period; in accordance with a determination that the region in the logical address space of the host is accessed more than the predetermined threshold number of times during the predetermined time period, marking the region in the logical address space of the host with a hot region indicator; and while the region in the logical address space of the host is marked with the hot region indicator, identifying open physical blocks, comprising physical blocks, to which logical addresses in the region are mapped using a logical address to physical address mapping, that are not full and that are available for storing additional data while retaining data already stored therein; and based on the identifying of open physical blocks to which logical addresses in the region are mapped, marking each of the identified open physical blocks with a hot block indicator, wherein the hot block indicator for a respective open physical block is distinct from the hot region indicator for the region in the logical address space of the host, and each block of the identified open physical blocks includes a plurality of pages and corresponds to a predefined range of physical addresses in a physical address space of the storage device; wherein at least one region marked with the hot region indicator includes one or more logical addresses mapped to a physical block that is not open, and one or more logical addresses mapped to a physical block that is open. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A storage device, comprising:
-
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, 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; and perform one or more operations for each region of the plurality of regions in the logical address space of the host, wherein each region includes two or more logical block addresses (LBAs), including; determining whether the region in the logical address space of the host is accessed by the plurality of I/O requests more than a predetermined threshold number of times during a predetermined time period; in accordance with a determination that the region in the logical address space of the host is accessed more than the predetermined threshold number of times during the predetermined time period, marking the region in the logical address space of the host with a hot region indicator; and while the region in the logical address space of the host is marked with the hot region indicator, identifying open physical blocks, comprising physical blocks, to which logical addresses in the region are mapped using a logical address to physical address mapping, that are not full and that are available for storing additional data while retaining data already stored therein; and based on the identifying of open physical blocks to which logical addresses in the region are mapped, marking each of the identified open physical blocks with a hot block indicator, wherein the hot block indicator for a respective open physical block is distinct from the hot region indicator for the region in the logical address space of the host, and each block of the identified open physical blocks includes a plurality of pages and corresponds to a predefined range of physical addresses in a physical address space of the storage device; wherein at least one region marked with the hot region indicator includes one or more logical addresses mapped to a physical block that is not open, and one or more logical addresses mapped to a physical block that is open. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A storage system, comprising:
-
a storage medium; 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 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 the plurality of regions in the logical address space of the host; and perform one or more operations for each region of the plurality of regions in the logical address space of the host, wherein each region includes two or more logical block addresses (LBAs), including; determining whether the region in the logical address space of the host is accessed by the plurality of I/O requests more than a predetermined threshold number of times during a predetermined time period; in accordance with a determination that the region in the logical address space of the host is accessed more than the predetermined threshold number of times during the predetermined time period, marking the region in the logical address space of the host with a hot region indicator; and while the region in the logical address space of the host is marked with the hot region indicator, identifying open physical blocks, comprising physical blocks, to which logical addresses in the region are mapped using a logical address to physical address mapping, that are not full and that are available for storing additional data while retaining data already stored therein; and based on the identifying of open physical blocks to which logical addresses in the region are mapped, marking each of the identified open physical blocks with a hot block indicator, wherein the hot block indicator for a respective open physical block is distinct from the hot region indicator for the region in the logical address space of the host, and each block of the identified open physical blocks includes a plurality of pages and corresponds to a predefined range of physical addresses in a physical address space of the storage device; wherein at least one region marked with the hot region indicator includes one or more logical addresses mapped to a physical block that is not open, and one or more logical addresses mapped to a physical block that is open.
-
-
18. A non-transitory computer readable storage medium, storing one or more programs configured for execution by one or more processors of a storage device, the one or more programs including instructions for:
-
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; and performing one or more operations for each region of the plurality of regions in the logical address space of the host, wherein each region includes two or more logical block addresses (LBAs), including; determining whether the region in the logical address space of the host is accessed by the plurality of I/O requests more than a predetermined threshold number of times during a predetermined time period; in accordance with a determination that the region in the logical address space of the host is accessed more than the predetermined threshold number of times during the predetermined time period, marking the region in the logical address space of the host with a hot region indicator; and while the region in the logical address space of the host is marked with the hot region indicator, identifying open physical blocks, comprising physical blocks, to which logical addresses in the region are mapped using a logical address to physical address mapping, that are not full and that are available for storing additional data while retaining data already stored therein; and based on the identifying of open physical blocks to which logical addresses in the region are mapped, marking each of the identified open physical blocks with a hot block indicator, wherein the hot block indicator for a respective open physical block is distinct from the hot region indicator for the region in the logical address space of the host, and each block of the identified open physical blocks includes a plurality of pages and corresponds to a predefined range of physical addresses in a physical address space of the storage device; wherein at least one region marked with the hot region indicator includes one or more logical addresses mapped to a physical block that is not open, and one or more logical addresses mapped to a physical block that is open. - View Dependent Claims (19, 20, 21, 22)
-
Specification