Data storage system with stale data mechanism and method of operation thereof
First Claim
Patent Images
1. A method of operation of a data storage system comprising:
- receiving a write command specifying a logical address to which to write;
determining whether a stale flag corresponding to the logical address is set;
in accordance with a determination that the stale flag is not set, setting the stale flag and releasing the write command to be processed;
in accordance with a determination that the stale flag is set, detecting an overlap, wherein the overlap indicates two or more outstanding write commands are operating on the same memory space;
receiving a read command specifying a second logical address from which to read;
determining whether a second stale flag corresponding to the second logical address is set;
in accordance with a determination that the second stale flag is not set, performing the read command, wherein performing the read command includes reading data from a physical address corresponding to the second logical address, wherein the physical address is determined using a logical-to-physical table; and
in accordance with a determination that the second stale flag is set, skipping performance of the read command until the second stale flag is not set.
3 Assignments
0 Petitions
Accused Products
Abstract
Systems, methods and/or devices are used to enable a stale data mechanism. In one aspect, the method includes (1) receiving a write command specifying a logical address to which to write, (2) determining whether a stale flag corresponding to the logical address is set, (3) in accordance with a determination that the stale flag is not set, setting the stale flag and releasing the write command to be processed, and (4) in accordance with a determination that the stale flag is set, detecting an overlap, wherein the overlap indicates two or more outstanding write commands are operating on the same memory space.
300 Citations
20 Claims
-
1. A method of operation of a data storage system comprising:
-
receiving a write command specifying a logical address to which to write; determining whether a stale flag corresponding to the logical address is set; in accordance with a determination that the stale flag is not set, setting the stale flag and releasing the write command to be processed; in accordance with a determination that the stale flag is set, detecting an overlap, wherein the overlap indicates two or more outstanding write commands are operating on the same memory space; receiving a read command specifying a second logical address from which to read; determining whether a second stale flag corresponding to the second logical address is set; in accordance with a determination that the second stale flag is not set, performing the read command, wherein performing the read command includes reading data from a physical address corresponding to the second logical address, wherein the physical address is determined using a logical-to-physical table; and in accordance with a determination that the second stale flag is set, skipping performance of the read command until the second stale flag is not set. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of operation of a data storage system, comprising:
-
receiving a write command specifying a logical address to which to write; determining whether a stale flag corresponding to the logical address is set; in accordance with a determination that the stale flag is not set, setting the stale flag and releasing the write command to be processed; in accordance with a determination that the stale flag is set, detecting an overlap, wherein the overlap indicates two or more outstanding write commands are operating on the same memory space; receiving a read command specifying a second logical address from which to read; determining whether a second stale flag corresponding to the second logical address is set; in accordance with a determination that the second stale flag is not set, performing the read command, wherein performing the read command includes reading data from a physical address corresponding to the second logical address, wherein the physical address is determined using a logical-to-physical table; and in accordance with a determination that the second stale flag is set, servicing the read command by reading data from in-flight write data for the second logical address.
-
-
10. A data storage system comprising:
-
one or more processors; and memory storing one or more programs to be executed by the one or more processors, the one or more programs comprising instructions for; receiving a write command specifying a logical address to which to write; determining whether a stale flag corresponding to the logical address is set; in accordance with a determination that the stale flag is not set, setting the stale flag and releasing the write command to be processed; in accordance with a determination that the stale flag is set, detecting an overlap, wherein the overlap indicates two or more outstanding write commands are operating on the same memory space; receiving a read command specifying a second logical address from which to read; determining whether a second stale flag corresponding to the second logical address is set; in accordance with a determination that the second stale flag is not set, performing the read command, wherein performing the read command includes reading data from a physical address corresponding to the second logical address, wherein the physical address is determined using a logical-to-physical table; and in accordance with a determination that the second stale flag is set, skipping performance of the read command until the second stale flag is not set. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A data storage system comprising:
-
one or more processors; and memory storing one or more programs to be executed by the one or more processors, the one or more programs comprising instructions for; receiving a write command specifying a logical address to which to write; determining whether a stale flag corresponding to the logical address is set; in accordance with a determination that the stale flag is not set, setting the stale flag and releasing the write command to be processed; in accordance with a determination that the stale flag is set, detecting an overlap, wherein the overlap indicates two or more outstanding write commands are operating on the same memory space; receiving a read command specifying a second logical address from which to read; determining whether a second stale flag corresponding to the second logical address is set; in accordance with a determination that the second stale flag is not set, performing the read command, wherein performing the read command includes reading data from a physical address corresponding to the second logical address, wherein the physical address is determined using a logical-to-physical table; and in accordance with a determination that the second stale flag is set, servicing the read command by reading data from in-flight write data for the second logical address.
-
-
16. A non-transitory computer readable storage medium, storing one or more programs configured for execution by one or more processors of a data storage system, the one or more programs including instructions for:
-
receiving a write command specifying a logical address to which to write; determining whether a stale flag corresponding to the logical address is set, in accordance with a determination that the stale flag is not set, setting the stale flag and releasing the write command to be processed; in accordance with a determination that the stale flag is set, detecting an overlap, wherein the overlap indicates two or more outstanding write commands are operating on the same memory space; receiving a read command specifying a second logical address from which to read; determining whether a second stale flag corresponding to the second logical address is set; in accordance with a determination that the second stale flag is not set, performing the read command, wherein performing the read command includes reading data from a physical address corresponding to the second logical address, wherein the physical address is determined using a logical-to-physical table; and in accordance with a determination that the second stale flag is set, skipping performance of the read command until the second stale flag is not set. - View Dependent Claims (17, 18, 19)
-
-
20. A non-transitory computer readable storage medium, storing one or more programs configured for execution by one or more processors of a data storage system, the one or more programs including instructions for:
-
receiving a write command specifying a logical address to which to write; determining whether a stale flag corresponding to the logical address is set; in accordance with a determination that the stale flag is not set, setting the stale flag and releasing the write command to be processed; in accordance with a determination that the stale flag is set, detecting an overlap, wherein the overlap indicates two or more outstanding write commands are operating on the same memory space; receiving a read command specifying a second logical address from which to read; determining whether a second stale flag corresponding to the second logical address is set; in accordance with a determination that the second stale flag is not set, performing the read command, wherein performing the read command includes reading data from a physical address corresponding to the second logical address, wherein the physical address is determined using a logical-to-physical table; and in accordance with a determination that the second stale flag is set, servicing the read command by reading data from in-flight write data for the second logical address.
-
Specification