DETAILED ACTION
1. This Office Action is taken in response to Applicants’ Amendments and Remarks filed on 8/8/2025 regarding application 18/159,686 filed on 7/13/2023.
Claims 1-14, 16-18, and 20-22 are pending for consideration.
2. Response to Amendments and Remarks
Applicants’ amendments and remarks have been fully and carefully considered, with the Examiner’s response set forth below.
(1) Applicant contends that, regarding claim 1, that “deallocation cannot be interpreted as reset zone command,” and “Thus, the deallocation timing features in Eldar cannot be substituted or combined with the reset features of Lin” (see Argument 1 on page 8 of Applicant’s Remarks). The Examiner disagrees.
First, the claims merely recite “a reset zone command,” and is otherwise completely silent regarding the definition and scope of “reset zone,” let alone what types of operations constitute “reset” and what are not considered as “reset.” As such, the term “reset” must be given the broadest, reasonable interpretation, according to the MPEP guidelines. Therefore, within the context of claim 1, any operations that restore a zone/region/area back to its previous state is considered as a form of reset. A deallocation would restore a zone/region/area back to its pre-allocate state, therefore qualify as a type of reset operation.
Second, the current application actually repeated recite that reset and deallocation are both sides of the same coin, and are referred to hand-by-hand, side-by-side together. For example, the abstract of the current application recites “A data storage device for providing efficient deallocation and reset of zones may include a host interface for coupling the data storage device to a host system. The data storage device may also include a controller. The controller may be configured to receive a format or reset zone command from a host system. The controller may also be configured to, in response to receiving the format or reset zone command, extract a time limit from the format or reset command. The controller may also be configured to, within the time limit: set a bitmap for a plurality of memory regions; and perform deallocation or reset of zones of at least a portion of the plurality of memory regions, according to the bitmap. The controller may also return a command completion to the host system.”
Therefore, the inventions of Lin, who teaches “reset zone commands,” and Eldar, who teaches “deallocation commands,” are highly relevant, and the combination of the two is natural, logical, and certainly proper.
(2) Applicant also contends that, regarding claim 1, that “Eldar does not teach extracting a time limit from a reset zone command,” because “Eldar merely specifies the time at which the command itself is initiated” (see Argument 2 on pages 8-9 of Applicant’s Remarks). The Examiner disagrees.
It is noted that Eldar teaches not only “the time when allocation/deallocation is initiated,” but also “the duration (i.e., time limit) for allocation/deallocation.”
For example, the timing diagram illustrated in figure 5 shows not only the time instant when allocation is initiated (510), but also the time duration/time-limit during which allocation is performed (∆t, 512). Similarly, the timing diagram illustrated in figure 6 shows not only the time instant when deallocation is initiated (610), but also the time duration/time-limit during which deallocation is performed (∆t, 616).
Eldar further teaches these aspects [… Allocation command 412 also causes resource allocator 406 to initiate the allocation of CPUs/CPU cores an N number of hours before the identified increase of the CPU load (i.e., an N number of hours before the time identified by line 506). The time at which the allocation of the CPUs/CPU cores is initiated is shown via line 510. N represents the duration of time Δt 512 (e.g., 2 hours) it takes to allocate the number of CPUs/CPU cores. In accordance with an embodiment, allocation command 412 may specify the time at which the initiation of the allocation of resources should occur, as well as the number of resources to be allocated … (¶ 0054); … Thus, prediction analyzer 404 may send deallocation command 410 that causes resource allocator 406 to deallocate a number of CPUs or CPU cores. The deallocation occurs at a time just as the relatively high load ends. The time is shown via line 610. The number of CPUs or CPU cores that are deallocated are based on a maximum CPU load during duration Δt 616. This way, enough CPUs or CPU cores will be allocated to handle the maximum CPU load (identified by line 614) of the subsequent hours. This avoids consecutive deallocation operations by only scheduling a single deallocation operation for duration Δt 616. In accordance with an embodiment, deallocation command 410 may specify the time at which the initiation of the deallocation of resources should occur, as well as the total number of resources that should remain allocated after deallocation. The number of resources may be determined in accordance with Equation 3, as described above (¶ 0057)].
Eldar teaches not only “the time when allocation/deallocation is initiated,” but also “the duration (i.e., time limit) for allocation/deallocation.”
(3) In response to the amendments and remarks, an updated claim analysis has been made. Refer to the corresponding sections of the following Office Action for details.
3. Examiner’s Note
(1) In the case of amending the Claimed invention, Applicant is respectfully requested to indicate the portion(s) of the specification which dictate(s) the structure relied on for proper interpretation and also to verify and ascertain the metes and bounds of the claimed invention. This will assist in expediting compact prosecution. MPEP 714.02 recites: “Applicant should also specifically point out the support for any amendments made to the disclosure. See MPEP § 2163.06. An amendment which does not comply with the provisions of 37 CFR 1.121(b), (c), (d), and (h) may be held not fully responsive. See MPEP § 714.” Amendments not pointing to specific support in the disclosure may be deemed as not complying with provisions of 37 C.F.R. 1.131(b), (c), (d), and (h) and therefore held not fully responsive. Generic statements such as “Applicants believe no new matter has been introduced” may be deemed insufficient.
(2) Examiner has cited particular columns/paragraph and line numbers in the references applied to the claims above for the convenience of the applicant. Although the specified citations are representative of the teachings of the art and are applied to specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested from the applicant in preparing responses, to fully consider the references in entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the Examiner.
Claim Rejections - 35 USC § 103
The following is a quotation of pre-AIA 35 U.S.C. 103(a) which forms the basis for all obviousness rejections set forth in this Office action:
A patent may not be obtained though the invention is not identically disclosed or described as set forth in section 102, if the differences between the subject matter sought to be patented and the prior art are such that the subject matter as a whole would have been obvious at the time the invention was made to a person having ordinary skill in the art to which said subject matter pertains. Patentability shall not be negatived by the manner in which the invention was made.
4. Claim 1-4, 6-14, 16-18, and 20-22 are rejected under 35 U.S.C. 103 as being unpatentable over Lin (US Patent Application Publication 2022/0317879), in view of Eldar et al. (US Patent Application Publication 2022/0374273, hereinafter Eldar), and further in view of Kim (US Patent Application Publication 2011/0264884)
As to claim 1, Lin teaches A data storage device [as shown in figures 1 and 2; Eldar also teaches this limitation – as shown in figure 1], comprising:
a host interface for coupling the data storage device to a host system [as shown in figures 1 and 2, host (110), data storage devices (120)]; and
a controller [as shown in figures 1 and 2, data storage device controller (122)] wherein the controller of the data storage device is configured to receive a reset zone command from the host system [as shown in figure 10, step 1008; The present invention provides a control method of the flash memory controller. In the control method, after receiving a deallocate command from a host device, the flash memory controller will update a valid page count table, a detailed valid page count table and/or a zone valid page count table according to deallocate command, for the flash memory controller to efficiently and quickly determine if any one of the zones does not have any valid data, so that the flash memory controller can recommend the host device to send a reset command to reset the zone (abstract); It is noted that, in order to avoid wrongly determining that the zone does not have any valid data, the microprocessor 212 recommends the host device 110 to perform a reset command only when the full information field shown in FIG. 15 indicates that all of the data of the zone has been completely written into the flash memory module 124 … In another embodiment, if the microprocessor 212 detects that there is no valid data within the blocks B3, B7 and B8 corresponding to the zone Z1, the flash memory controller 122 can actively send a zone descriptor changed event for the zone Z1 to the host device 110, to recommend the host device 110 to send a reset command to reset the zone (¶ 0063-0064);
Eldar also teaches this limitation – Referring again to FIG. 1, predictive autoscaler 118 is configured to utilize prediction 248 to automatically allocate or deallocate computing resources … Examples of resources 414 include, but are not limited to, operating systems, applications, services executing on one or more of nodes 108A-108N, 112A-112N and/or 114A-114N, hardware and virtual resources maintained by the network-accessible server set (e.g., nodes 108A-108N, 112A-112N and/or 114A-114N, virtual machines, central processor units (CPUs), storage (e.g., storage disks 122), memories, etc.), and/or I/O, network bandwidth, power, etc., associated therewith … Prediction analyzer 404 may be configured to analyze prediction 248 provided by prediction combiner 210, as described above with reference to FIG. 2. In response to determining that prediction 248 indicates that the metric(s) will decrease in a future time frame, prediction analyzer 404 may provide a deallocation command 410 to resource allocator 406, that causes resource allocator 406 to deallocate (e.g., reduce the number of) one or more resources of resources 414. In response to receiving deallocation command 410, resource allocator 406 may initiate the deallocation of resource(s) of resources 414 at (or before) the predicted time at which the metric(s) will decrease … (¶ 0050-0052);
First, the claims merely recite “a reset zone command,” and is otherwise completely silent regarding the definition and scope of “reset zone,” let alone what types of operations constitute “reset” and what are not considered as “reset.” As such, the term “reset” must be given the broadest, reasonable interpretation, according to the MPEP guidelines. Therefore, within the context of claim 1, any operations that restore a zone/region/area back to its previous state is considered as a form of reset. A deallocation would restore a zone/region/area back to its pre-allocate state, therefore qualify as a type of reset operation.
Second, the current application actually repeated recite that reset and deallocation are both sides of the same coin, and are referred to hand-by-hand, side-by-side together. For example, the abstract of the current application recites “A data storage device for providing efficient deallocation and reset of zones may include a host interface for coupling the data storage device to a host system. The data storage device may also include a controller. The controller may be configured to receive a format or reset zone command from a host system. The controller may also be configured to, in response to receiving the format or reset zone command, extract a time limit from the format or reset command. The controller may also be configured to, within the time limit: set a bitmap for a plurality of memory regions; and perform deallocation or reset of zones of at least a portion of the plurality of memory regions, according to the bitmap. The controller may also return a command completion to the host system.”
Therefore, the inventions of Lin, who teaches “reset zone commands,” and Eldar, who teaches “deallocation commands,” are highly relevant, and the combination of the two is natural, logical, and certainly proper]; in response to receiving the reset zone command from the host system: the controller of the data storage device is configured to extract a time limit from specified in the reset command received from the host system, wherein the time limit is a specific time limit for resetting a plurality of memory regions in the data storage device [this limitation is taught by Eldar -- the timing diagram illustrated in figure 5 shows not only the time instant when allocation is initiated (510), but also the time duration/time-limit during which allocation is performed (∆t, 512). Similarly, the timing diagram illustrated in figure 6 shows not only the time instant when deallocation is initiated (610), but also the time duration/time-limit during which deallocation is performed (∆t, 616); … Allocation command 412 also causes resource allocator 406 to initiate the allocation of CPUs/CPU cores an N number of hours before the identified increase of the CPU load (i.e., an N number of hours before the time identified by line 506). The time at which the allocation of the CPUs/CPU cores is initiated is shown via line 510. N represents the duration of time Δt 512 (e.g., 2 hours) it takes to allocate the number of CPUs/CPU cores. In accordance with an embodiment, allocation command 412 may specify the time at which the initiation of the allocation of resources should occur, as well as the number of resources to be allocated … (¶ 0054); … Thus, prediction analyzer 404 may send deallocation command 410 that causes resource allocator 406 to deallocate a number of CPUs or CPU cores. The deallocation occurs at a time just as the relatively high load ends. The time is shown via line 610. The number of CPUs or CPU cores that are deallocated are based on a maximum CPU load during duration Δt 616. This way, enough CPUs or CPU cores will be allocated to handle the maximum CPU load (identified by line 614) of the subsequent hours. This avoids consecutive deallocation operations by only scheduling a single deallocation operation for duration Δt 616. In accordance with an embodiment, deallocation command 410 may specify the time at which the initiation of the deallocation of resources should occur, as well as the total number of resources that should remain allocated after deallocation. The number of resources may be determined in accordance with Equation 3, as described above (¶ 0057)];
within the time limit: the controller of the data storage device is configured to
set a bitmap for a plurality of memory regions [as shown in figures 19 and 20, the deallocation command history comprising a string of bits corresponding to storage regions that have been deallocated; … Specifically, referring to FIG. 19, which is a diagram illustrating a zone valid page mapping table 1900 according to one embodiment of the present invention. The zone valid page mapping table 1900 comprises deallocate command history field, wherein the deallocate command history field comprises a plurality of bits, and each bit is used to indicate if the data of a corresponding page is valid or invalid. For example, if a zone has 282 pages, the deallocate command history field comprises 282 bits, and each bit corresponds to one page. If the bit is equal to “1”, it means that the data within the corresponding page is valid; and if the bit is equal to “0”, it means that the data within the corresponding page is invalid. In the embodiment shown in FIG. 19, all of the data of the zones Z1-Z3 is rewritten into the flash memory module 124, and no deallocate command is received, so the bits of the deallocate command history field are all equal to “1”, and the valid page count of each of the zones Z1-Z3 is equal to “282” … (¶ 0080-0082);
Kim teaches setting the bitmap and performing deallocation -- A data storage device includes a storage media storing data and a controller that receives a de-allocation command and performs the de-allocation command according to a size of a de-allocation region … (abstract); Generating de-allocation management data may include marking an erase bitmap (¶ 0015); The de-allocation management data may be an erase bitmap, and the controller may mark the erase bitmap to indicate storage locations to be de-allocate (¶ 0026); An erase bitmap is marked to indicated whether or not a block should be erased. The data storage device 120 configures the erase bitmap to manage a region to be erased … (¶ 0096-0098)]; and the controller of the data storage device is configured to perform reset of zones of at least a portion of the plurality of memory regions, according to the bitmap [Then, if the flash memory controller 122 receives the deallocate command from the host device 110 to deallocate the data corresponding a logical address range, the microprocessor 212 will update the L2P table to remove the information of the logical address range so that the data corresponding the logical address range can be regarded as invalid data … It is noted that, in order to avoid wrongly determining that the zone does not have any valid data, the microprocessor 212 recommends the host device 110 to perform a reset command only when the full information field shown in FIG. 15 indicates that all of the data of the zone has been completely written into the flash memory module 124 … In another embodiment, if the microprocessor 212 detects that there is no valid data within the blocks B3, B7 and B8 corresponding to the zone Z1, the flash memory controller 122 can actively send a zone descriptor changed event for the zone Z1 to the host device 110, to recommend the host device 110 to send a reset command to reset the zone (¶ 0061-0064);]; and
the controller of the data storage device is configured to return a command completion to the host system [this limitation is taught by Kim -- … notifies the host a de-allocation completion after the erasing, configures an erase bitmap corresponding to an un-erased region of the de-allocation requested region, and performs a de-allocation operation according to the erase bitmap after notifying of the completion (¶ 0011); … an operation notifying the host a completion of the de-allocation command after the first de-allocation operation, and a second de-allocation operation to erase the rest of the de-allocation region (claim 1)].
Regarding claim 1, Lin does not teach extracting a time limit from specified in the format or reset command received from the host system, wherein the time limit is a specific time limit for formatting or resetting a plurality of memory regions.
However, Eldar specifically teaches extracting a time limit from specified in the deallocate/reset command received from the host system, wherein the time limit is a specific time limit for formatting or resetting a plurality of memory regions [Referring again to FIG. 1, predictive autoscaler 118 is configured to utilize prediction 248 to automatically allocate or deallocate computing resources … Examples of resources 414 include, but are not limited to, operating systems, applications, services executing on one or more of nodes 108A-108N, 112A-112N and/or 114A-114N, hardware and virtual resources maintained by the network-accessible server set (e.g., nodes 108A-108N, 112A-112N and/or 114A-114N, virtual machines, central processor units (CPUs), storage (e.g., storage disks 122), memories, etc.), and/or I/O, network bandwidth, power, etc., associated therewith … Prediction analyzer 404 may be configured to analyze prediction 248 provided by prediction combiner 210, as described above with reference to FIG. 2. In response to determining that prediction 248 indicates that the metric(s) will decrease in a future time frame, prediction analyzer 404 may provide a deallocation command 410 to resource allocator 406, that causes resource allocator 406 to deallocate (e.g., reduce the number of) one or more resources of resources 414. In response to receiving deallocation command 410, resource allocator 406 may initiate the deallocation of resource(s) of resources 414 at (or before) the predicted time at which the metric(s) will decrease … (¶ 0050-0052); … Allocation command 412 also causes resource allocator 406 to initiate the allocation of CPUs/CPU cores an N number of hours before the identified increase of the CPU load (i.e., an N number of hours before the time identified by line 506). The time at which the allocation of the CPUs/CPU cores is initiated is shown via line 510. N represents the duration of time Δt 512 (e.g., 2 hours) it takes to allocate the number of CPUs/CPU cores. In accordance with an embodiment, allocation command 412 may specify the time at which the initiation of the allocation of resources should occur, as well as the number of resources to be allocated … (¶ 0054); … Thus, prediction analyzer 404 may send deallocation command 410 that causes resource allocator 406 to deallocate a number of CPUs or CPU cores. The deallocation occurs at a time just as the relatively high load ends. The time is shown via line 610. The number of CPUs or CPU cores that are deallocated are based on a maximum CPU load during duration Δt 616. This way, enough CPUs or CPU cores will be allocated to handle the maximum CPU load (identified by line 614) of the subsequent hours. This avoids consecutive deallocation operations by only scheduling a single deallocation operation for duration Δt 616. In accordance with an embodiment, deallocation command 410 may specify the time at which the initiation of the deallocation of resources should occur, as well as the total number of resources that should remain allocated after deallocation. The number of resources may be determined in accordance with Equation 3, as described above (¶ 0057)].
Therefore, it would have been obvious for one of ordinary skills in the art prior to Applicant’s invention to extract a time limit from specified in the deallocate/reset command received from the host system, wherein the time limit is a specific time limit for formatting or resetting a plurality of memory regions, as expressively demonstrated by Eldar, and to incorporate it into the existing scheme disclosed by Lin, because Eldar teaches doing so allows the allocations/deallocations of the system resources to be managed to maintain the system performance metrics [Methods, systems, apparatuses, and computer-readable storage mediums described herein are configured to automatically allocate or deallocate computing resources based on a prediction of performance metrics behavior. For instance, the historical behavior of compute metrics (or a time series obtained therefor) is analyzed to detect a seasonality (i.e., a seasonal pattern) and a trend therefor. A prediction of the metrics' behavior for a future time frame is determined based on the seasonality and the trend. Based on the prediction, computing resources are allocated or deallocated at or prior to the future time frame occurring. For example, if a prediction is made that a particular metric will increase, additional compute resources are allocated to handle the increase ahead of the predicted metric increase. If a prediction is made that a particular metric will decrease, compute resources are deallocated at the time the metric is predicted to decrease (abstract)].
Further regarding claim 1. Lin in view of Eldar does not expressively teach the controller of the data storage device is configured to return a command completion to the host system.
However, it is a well-known and common practice to return a completion message to a host when a task is completed, to keep the host updated on the status and the task issued by the hot.
For example, Kim specifically teaches notifying the host when a de-allocation/reset command has been completed [… notifies the host a de-allocation completion after the erasing, configures an erase bitmap corresponding to an un-erased region of the de-allocation requested region, and performs a de-allocation operation according to the erase bitmap after notifying of the completion (¶ 0011); … an operation notifying the host a completion of the de-allocation command after the first de-allocation operation, and a second de-allocation operation to erase the rest of the de-allocation region (claim 1)].
Therefore, it would have been obvious for one of ordinary skills in the art prior to Applicant’s invention to notify the host when a de-allocation/reset command has been completed, as expressively demonstrated by Kim , and to incorporate it into the existing scheme disclosed by Lin in view of Eldar, in order to keep the host updated on the status of an issued command.
As to claim 2, Lin in view of Eldar & Kim teaches The data storage device of claim 1, wherein the controller is further configured to: prior to setting the bitmap, start a timer for the time limit; and upon expiration of the timer, stop the the reset of zones [Eldar teaches the aspect of the timer – as shown in figures 3, and 5-6; Methods, systems, apparatuses, and computer-readable storage mediums described herein are configured to automatically allocate or deallocate computing resources based on a prediction of performance metrics behavior. For instance, the historical behavior of compute metrics (or a time series obtained therefor) is analyzed to detect a seasonality (i.e., a seasonal pattern) and a trend therefor. A prediction of the metrics' behavior for a future time frame is determined based on the seasonality and the trend. Based on the prediction, computing resources are allocated or deallocated at or prior to the future time frame occurring … (abstract);
Lin teaches bitmap and reset zone operations -- as shown in figure 10, step 1008; The present invention provides a control method of the flash memory controller. In the control method, after receiving a deallocate command from a host device, the flash memory controller will update a valid page count table, a detailed valid page count table and/or a zone valid page count table according to deallocate command, for the flash memory controller to efficiently and quickly determine if any one of the zones does not have any valid data, so that the flash memory controller can recommend the host device to send a reset command to reset the zone (abstract); It is noted that, in order to avoid wrongly determining that the zone does not have any valid data, the microprocessor 212 recommends the host device 110 to perform a reset command only when the full information field shown in FIG. 15 indicates that all of the data of the zone has been completely written into the flash memory module 124 … In another embodiment, if the microprocessor 212 detects that there is no valid data within the blocks B3, B7 and B8 corresponding to the zone Z1, the flash memory controller 122 can actively send a zone descriptor changed event for the zone Z1 to the host device 110, to recommend the host device 110 to send a reset command to reset the zone (¶ 0063-0064); as shown in figures 19 and 20, the deallocation command history comprising a string of bits corresponding to storage regions that have been deallocated; … Specifically, referring to FIG. 19, which is a diagram illustrating a zone valid page mapping table 1900 according to one embodiment of the present invention. The zone valid page mapping table 1900 comprises deallocate command history field, wherein the deallocate command history field comprises a plurality of bits, and each bit is used to indicate if the data of a corresponding page is valid or invalid. For example, if a zone has 282 pages, the deallocate command history field comprises 282 bits, and each bit corresponds to one page. If the bit is equal to “1”, it means that the data within the corresponding page is valid; and if the bit is equal to “0”, it means that the data within the corresponding page is invalid. In the embodiment shown in FIG. 19, all of the data of the zones Z1-Z3 is rewritten into the flash memory module 124, and no deallocate command is received, so the bits of the deallocate command history field are all equal to “1”, and the valid page count of each of the zones Z1-Z3 is equal to “282” … (¶ 0080-0082);
Kim teaches setting the bitmap and performing deallocation -- A data storage device includes a storage media storing data and a controller that receives a de-allocation command and performs the de-allocation command according to a size of a de-allocation region … (abstract); Generating de-allocation management data may include marking an erase bitmap (¶ 0015); The de-allocation management data may be an erase bitmap, and the controller may mark the erase bitmap to indicate storage locations to be de-allocate (¶ 0026); An erase bitmap is marked to indicated whether or not a block should be erased. The data storage device 120 configures the erase bitmap to manage a region to be erased … (¶ 0096-0098)].
As to claim 3, Lin in view of Eldar & Kim teaches The data storage device of claim 2, wherein the controller is further configured to: in accordance with a determination that the reset of zones is complete before the expiration of the timer, return the command completion to the host system [Lin teaches bitmap and reset zone operations -- as shown in figure 10, step 1008; The present invention provides a control method of the flash memory controller. In the control method, after receiving a deallocate command from a host device, the flash memory controller will update a valid page count table, a detailed valid page count table and/or a zone valid page count table according to deallocate command, for the flash memory controller to efficiently and quickly determine if any one of the zones does not have any valid data, so that the flash memory controller can recommend the host device to send a reset command to reset the zone (abstract); It is noted that, in order to avoid wrongly determining that the zone does not have any valid data, the microprocessor 212 recommends the host device 110 to perform a reset command only when the full information field shown in FIG. 15 indicates that all of the data of the zone has been completely written into the flash memory module 124 … In another embodiment, if the microprocessor 212 detects that there is no valid data within the blocks B3, B7 and B8 corresponding to the zone Z1, the flash memory controller 122 can actively send a zone descriptor changed event for the zone Z1 to the host device 110, to recommend the host device 110 to send a reset command to reset the zone (¶ 0063-0064); as shown in figures 19 and 20, the deallocation command history comprising a string of bits corresponding to storage regions that have been deallocated; … Specifically, referring to FIG. 19, which is a diagram illustrating a zone valid page mapping table 1900 according to one embodiment of the present invention. The zone valid page mapping table 1900 comprises deallocate command history field, wherein the deallocate command history field comprises a plurality of bits, and each bit is used to indicate if the data of a corresponding page is valid or invalid. For example, if a zone has 282 pages, the deallocate command history field comprises 282 bits, and each bit corresponds to one page. If the bit is equal to “1”, it means that the data within the corresponding page is valid; and if the bit is equal to “0”, it means that the data within the corresponding page is invalid. In the embodiment shown in FIG. 19, all of the data of the zones Z1-Z3 is rewritten into the flash memory module 124, and no deallocate command is received, so the bits of the deallocate command history field are all equal to “1”, and the valid page count of each of the zones Z1-Z3 is equal to “282” … (¶ 0080-0082);
Kim teaches returning the command completion to the host -- … notifies the host a de-allocation completion after the erasing, configures an erase bitmap corresponding to an un-erased region of the de-allocation requested region, and performs a de-allocation operation according to the erase bitmap after notifying of the completion (¶ 0011); … an operation notifying the host a completion of the de-allocation command after the first de-allocation operation, and a second de-allocation operation to erase the rest of the de-allocation region (claim 1)].
As to claim 4, Lin in view of Eldar & Kim teaches The data storage device of claim 1, wherein the reset zone command corresponds to a reset all zone command [Lin teaches bitmap and reset zone operations -- as shown in figure 10, step 1008; The present invention provides a control method of the flash memory controller. In the control method, after receiving a deallocate command from a host device, the flash memory controller will update a valid page count table, a detailed valid page count table and/or a zone valid page count table according to deallocate command, for the flash memory controller to efficiently and quickly determine if any one of the zones does not have any valid data, so that the flash memory controller can recommend the host device to send a reset command to reset the zone (abstract); It is noted that, in order to avoid wrongly determining that the zone does not have any valid data, the microprocessor 212 recommends the host device 110 to perform a reset command only when the full information field shown in FIG. 15 indicates that all of the data of the zone has been completely written into the flash memory module 124 … In another embodiment, if the microprocessor 212 detects that there is no valid data within the blocks B3, B7 and B8 corresponding to the zone Z1, the flash memory controller 122 can actively send a zone descriptor changed event for the zone Z1 to the host device 110, to recommend the host device 110 to send a reset command to reset the zone (¶ 0063-0064)].
As to claim 6, Lin in view of Eldar & Kim teaches The data storage device of claim 1, wherein the controller is further configured to: after expiration of the time limit: perform reset of zones of a remaining portion of the plurality of memory regions according to the bitmap in a background operation [Lin teaches bitmap and reset zone operations -- as shown in figure 10, step 1008; The present invention provides a control method of the flash memory controller. In the control method, after receiving a deallocate command from a host device, the flash memory controller will update a valid page count table, a detailed valid page count table and/or a zone valid page count table according to deallocate command, for the flash memory controller to efficiently and quickly determine if any one of the zones does not have any valid data, so that the flash memory controller can recommend the host device to send a reset command to reset the zone (abstract); It is noted that, in order to avoid wrongly determining that the zone does not have any valid data, the microprocessor 212 recommends the host device 110 to perform a reset command only when the full information field shown in FIG. 15 indicates that all of the data of the zone has been completely written into the flash memory module 124 … In another embodiment, if the microprocessor 212 detects that there is no valid data within the blocks B3, B7 and B8 corresponding to the zone Z1, the flash memory controller 122 can actively send a zone descriptor changed event for the zone Z1 to the host device 110, to recommend the host device 110 to send a reset command to reset the zone (¶ 0063-0064); as shown in figures 19 and 20, the deallocation command history comprising a string of bits corresponding to storage regions that have been deallocated; … Specifically, referring to FIG. 19, which is a diagram illustrating a zone valid page mapping table 1900 according to one embodiment of the present invention. The zone valid page mapping table 1900 comprises deallocate command history field, wherein the deallocate command history field comprises a plurality of bits, and each bit is used to indicate if the data of a corresponding page is valid or invalid. For example, if a zone has 282 pages, the deallocate command history field comprises 282 bits, and each bit corresponds to one page. If the bit is equal to “1”, it means that the data within the corresponding page is valid; and if the bit is equal to “0”, it means that the data within the corresponding page is invalid. In the embodiment shown in FIG. 19, all of the data of the zones Z1-Z3 is rewritten into the flash memory module 124, and no deallocate command is received, so the bits of the deallocate command history field are all equal to “1”, and the valid page count of each of the zones Z1-Z3 is equal to “282” … (¶ 0080-0082);
Kim teaches deallocation command, which reset the memory -- Features and/or utilities of the present general inventive concept may also be realized by a data storage device including storage media to store data, and a controller to control the storage of data in the storage media by receiving a command to de-allocate a storage region of the storage media, determining whether the storage region to be de-allocated is greater than a predetermined storage size, and if the storage area is greater than the predetermined storage size, performing a plurality of de-allocation operations to de-allocate the storage region and transmitting an acknowledgement of de-allocation before completing the plurality of de-allocation operations (¶ 0020); … During an idle state that a command is not received from the host 110, the de-allocation managing module 139 additionally performs the de-allocation operation with reference to the erase bit map or the de-allocation table (¶ 0076); Eldar teaches the time limit aspect -- … Thus, prediction analyzer 404 may send deallocation command 410 that causes resource allocator 406 to deallocate a number of CPUs or CPU cores. The deallocation occurs at a time just as the relatively high load ends. The time is shown via line 610. The number of CPUs or CPU cores that are deallocated are based on a maximum CPU load during duration Δt 616. This way, enough CPUs or CPU cores will be allocated to handle the maximum CPU load (identified by line 614) of the subsequent hours. This avoids consecutive deallocation operations by only scheduling a single deallocation operation for duration Δt 616. In accordance with an embodiment, deallocation command 410 may specify the time at which the initiation of the deallocation of resources should occur, as well as the total number of resources that should remain allocated after deallocation. The number of resources may be determined in accordance with Equation 3, as described above (¶ 0057)].
As to claim 7, Lin in view of Eldar & Kim teaches The data storage device of claim 6, wherein the controller is further configured to: perform the background operation when the data storage device has bandwidth [Kim -- … During an idle state that a command is not received from the host 110, the de-allocation managing module 139 additionally performs the de-allocation operation with reference to the erase bit map or the de-allocation table (¶ 0076)].
As to claim 8, Lin in view of Eldar & Kim teaches The data storage device of claim 6, wherein the controller is further configured to: perform the background operation by scanning the bitmap, wherein the scanning comprises one or more instances of scanning the bitmap from a first bit to a last bit, and each of the one or more instances comprises (i) resetting a group of zones corresponding to a one bit in the bitmap and (ii) clearing the one bit in the bitmap [Kim -- as shown in figures 7B, (2) erase bitmap marking; figure 8A, step S150, marking erase bitmap; Generating de-allocation management data may include marking an erase bitmap (¶ 0015); The de-allocation management data may be an erase bitmap, and the controller may mark the erase bitmap to indicate storage locations to be de-allocate (¶ 0026); An erase bitmap is marked to indicated whether or not a block should be erased. The data storage device 120 configures the erase bitmap to manage a region to be erased … (¶ 0096-0098); … During an idle state that a command is not received from the host 110, the de-allocation managing module 139 additionally performs the de-allocation operation with reference to the erase bit map or the de-allocation table (¶ 0076);
Lin teaches bitmap and reset zone operations -- as shown in figure 10, step 1008; The present invention provides a control method of the flash memory controller. In the control method, after receiving a deallocate command from a host device, the flash memory controller will update a valid page count table, a detailed valid page count table and/or a zone valid page count table according to deallocate command, for the flash memory controller to efficiently and quickly determine if any one of the zones does not have any valid data, so that the flash memory controller can recommend the host device to send a reset command to reset the zone (abstract); It is noted that, in order to avoid wrongly determining that the zone does not have any valid data, the microprocessor 212 recommends the host device 110 to perform a reset command only when the full information field shown in FIG. 15 indicates that all of the data of the zone has been completely written into the flash memory module 124 … In another embodiment, if the microprocessor 212 detects that there is no valid data within the blocks B3, B7 and B8 corresponding to the zone Z1, the flash memory controller 122 can actively send a zone descriptor changed event for the zone Z1 to the host device 110, to recommend the host device 110 to send a reset command to reset the zone (¶ 0063-0064); as shown in figures 19 and 20, the deallocation command history comprising a string of bits corresponding to storage regions that have been deallocated; … Specifically, referring to FIG. 19, which is a diagram illustrating a zone valid page mapping table 1900 according to one embodiment of the present invention. The zone valid page mapping table 1900 comprises deallocate command history field, wherein the deallocate command history field comprises a plurality of bits, and each bit is used to indicate if the data of a corresponding page is valid or invalid. For example, if a zone has 282 pages, the deallocate command history field comprises 282 bits, and each bit corresponds to one page. If the bit is equal to “1”, it means that the data within the corresponding page is valid; and if the bit is equal to “0”, it means that the data within the corresponding page is invalid. In the embodiment shown in FIG. 19, all of the data of the zones Z1-Z3 is rewritten into the flash memory module 124, and no deallocate command is received, so the bits of the deallocate command history field are all equal to “1”, and the valid page count of each of the zones Z1-Z3 is equal to “282” … (¶ 0080-0082)].
As to claim 9, Lin in view of Eldar & Kim teaches The data storage device of claim 6, wherein the controller is further configured to: yield to operations other than the background operation, to avoid impact to quality-of-service (QoS) and other one or more operations’ latency constraints [Kim -- While the present general inventive concept includes performing the de-allocation processes during an idle time, the processes may also be performed when necessitated by a command from the host. For example, if the host 110 transmits a command to write data to the specific physical address locations that are marked in the erase bitmap to be de-allocated, the storage device controller 130 may then immediately perform the de-allocation process of the requested physical addresses without waiting for an idle time (¶ 0114)]; and perform operations for maintaining zone state integrity for the plurality of memory regions [Kim -- Upon completion of the above-described copy operation, the data storage device 120 erases the block B0. After the erase operation is ended, the data storage device 120 updates an address mapping table 138 for mapping the valid sectors S1 to S7. Afterwards, the data storage device 120 notifies the host 110 that the de-allocation process is completed (¶ 0091); Returning to refer to FIG. 7B, since data of the de-allocated region is stored in the block B0 wholly, the data storage device 120 marks whether a block B0 is erased or not, at the erase bitmap. If a mark related to a previous operation exists at the erase bitmap, the erase bitmap is updated. After marking at the erase bitmap whether a block B0 is erased or not, the data storage device 120 performs the first de-allocation process on a remaining de-allocated physical address region except for the block B0 (¶ 0098);
Lin teaches bitmap and reset zone operations -- as shown in figure 10, step 1008; The present invention provides a control method of the flash memory controller. In the control method, after receiving a deallocate command from a host device, the flash memory controller will update a valid page count table, a detailed valid page count table and/or a zone valid page count table according to deallocate command, for the flash memory controller to efficiently and quickly determine if any one of the zones does not have any valid data, so that the flash memory controller can recommend the host device to send a reset command to reset the zone (abstract); It is noted that, in order to avoid wrongly determining that the zone does not have any valid data, the microprocessor 212 recommends the host device 110 to perform a reset command only when the full information field shown in FIG. 15 indicates that all of the data of the zone has been completely written into the flash memory module 124 … In another embodiment, if the microprocessor 212 detects that there is no valid data within the blocks B3, B7 and B8 corresponding to the zone Z1, the flash memory controller 122 can actively send a zone descriptor changed event for the zone Z1 to the host device 110, to recommend the host device 110 to send a reset command to reset the zone (¶ 0063-0064); as shown in figures 19 and 20, the deallocation command history comprising a string of bits corresponding to storage regions that have been deallocated; … Specifically, referring to FIG. 19, which is a diagram illustrating a zone valid page mapping table 1900 according to one embodiment of the present invention. The zone valid page mapping table 1900 comprises deallocate command history field, wherein the deallocate command history field comprises a plurality of bits, and each bit is used to indicate if the data of a corresponding page is valid or invalid. For example, if a zone has 282 pages, the deallocate command history field comprises 282 bits, and each bit corresponds to one page. If the bit is equal to “1”, it means that the data within the corresponding page is valid; and if the bit is equal to “0”, it means that the data within the corresponding page is invalid. In the embodiment shown in FIG. 19, all of the data of the zones Z1-Z3 is rewritten into the flash memory module 124, and no deallocate command is received, so the bits of the deallocate command history field are all equal to “1”, and the valid page count of each of the zones Z1-Z3 is equal to “282” … (¶ 0080-0082)].
As to claim 10, Lin in view of Eldar & Kim teaches The data storage device of claim 1, wherein the controller is further configured to: resume zone reset operation after a power cycle or loss of power when there is a pending zone reset operation, according to the bitmap [Kim -- Referring to FIG. 3, the FTL loaded on the working memory 135 includes a plurality of modules: a wear-leveling module 136, a garbage collection module 137, an address mapping table 138, and a de-allocation managing module 139. But, elements of the FTL are not limited to the above-described elements. For example, the FTL may further comprise a sudden power-off managing module for providing the unexpected power-off, a bad block managing module for managing defective blocks, and the like (¶ 0072); An erase bitmap is marked to indicated whether or not a block should be erased. The data storage device 120 configures the erase bitmap to manage a region to be erased … (¶ 0096-0098);
Lin teaches bitmap and reset zone operations -- as shown in figure 10, step 1008; The present invention provides a control method of the flash memory controller. In the control method, after receiving a deallocate command from a host device, the flash memory controller will update a valid page count table, a detailed valid page count table and/or a zone valid page count table according to deallocate command, for the flash memory controller to efficiently and quickly determine if any one of the zones does not have any valid data, so that the flash memory controller can recommend the host device to send a reset command to reset the zone (abstract); It is noted that, in order to avoid wrongly determining that the zone does not have any valid data, the microprocessor 212 recommends the host device 110 to