DETAILED ACTION
This Action is responsive to the RCE filed on 02/02/2026.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Continued Examination Under 37 CFR 1.114
A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on 02/02/2026 has been entered.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 1-20 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Regarding Claim 1,
Claim 1 recites “the time of the occurrence of the internal event” in the final line without providing proper antecedent basis. Therefore, the scope of Claim 1 is indefinite, and the claim is rejected under 35 U.S.C. 112(b). Examiner recommends applicant amend Claim 1, final line instead to read “a time of occurrence of the internal event” in order to overcome this rejection.
Claim 7, 20th line and Claim 11, 18-19th lines recite substantially similar limitations as compared to Claim 1 and therefore are similarly rejected under 35 U.S.C. 112(b) according to the same rationale. Claims 2-6, 8-10, and 12-20 are similarly rejected according to their respective dependencies.
Examiner Note
Claim 1 recites:
A storage controller comprising:
an internal event monitoring circuit configured to detect that an occurrence of an internal event, wherein the internal event is performed in the storage controller independently of a host device;
a duration calculation circuit configured to calculate, in response to detecting occurrence of the internal event, expected processing times for completing the internal event based on each of a plurality of allocation ratios;
a latency mapping table configured to output expected latencies in processing the internal event for each of the plurality of allocation ratios; and
an update circuit configured to generate multi-latency information and provide the multi- latency information to the host device, wherein the multi-latency information includes an indicator representing the internal event, and the expected processing times and the expected latencies respectively corresponding to the plurality of allocation ratios, the expected processing times and the expected latencies being for processing the internal event based on the plurality of allocation ratios, each of the plurality of allocation ratios represents a ratio of (a portion of resources of the storage controller allocated for processing the internal event) to (a portion of resources of the storage controller allocated for processing a command requested by the host device), and
the storage controller is configured to allocate resources for processing the command and the internal event based on an allocation ratio selected by the host device
from among the plurality of allocation ratios
based on factors including a number of preprocessed commands, requirements for quality of service (QoS), and an input/output bandwidth corresponding to a storage device at the time of the occurrence of the internal event.
Claim 1 recites the following limitations which are not required under the BRI of Claim 1:
from among the plurality of allocation ratios
based on factors including a number of preprocessed commands, requirements for quality of service (QoS), and an input/output bandwidth corresponding to a storage device at the time of the occurrence of the internal event.
Claim 1 recites “A storage controller” in the preamble and therefore is limited in scope to a storage controller. See MPEP 2111.02. Each of limitations a) through e) recited above further limit a structure of or actions taken by the claimed storage controller. Therefore, each of limitations a) through e) recited above fall within the scope of Claim 1.
However, examiner notes that limitations f) and g) above do not appear to further limit the aforementioned storage controller; but instead specify particular context surrounding actions taken by a host device in order to select a particular allocation ratio. Accordingly, actions which are taken by a host device; including:
f) context that the allocation ratio selected by the host device is selected “from among the plurality of allocation ratios” (i.e., the host selects one of a plurality of possible allocation ratios); and
g) specific factors which are taken into consideration by the host device during selection of the allocation ratio;
fall outside of the scope of Claim 1.
Therefore, the BRI of Claim 1 requires only limitations a) – e) listed above.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1-6 are rejected under 35 U.S.C. 103 as being unpatentable over Jeon et al. (US 20230401006 A1)(hereafter referred to as Jeon) further in view of Gordon (US 11074173 B1)(cited by examiner in previous Action)(hereafter referred to as Gordon) and Ye et al. (US 20240126689 A1)(hereafter referred to as Ye).
Regarding Claim 1,
Jeon discloses the following limitations:
A storage controller (Memory Controller 200, Fig. 3) comprising:
an internal event monitoring circuit (Garbage Collection Processor 220, Fig. 3) configured to detect that an occurrence of an internal event (“garbage collection” [0090])(“The garbage collection processor 220 may perform the garbage collection on the memory device 100” [0090]) – Garbage Collection Processor 220 of Memory Controller 200 is instructed to perform garbage collection--,
wherein the internal event is performed in the storage controller independently of a host device (Host 300, Fig. 3)(“the memory controller 200 may provide the command … to perform background operations such as … a program operation for garbage collection” [0046] // ¶0050) – Controller 200 performs garbage collection as a background operation (in contrast to “a write command provided from the host 300”; see ¶0050); i.e., performs garbage collection “independently” of host 300--;
a duration calculation circuit (Memory Controller 200, Fig. 3) configured to calculate, in response to detecting occurrence of the internal event, expected processing times (“an expected time of the garbage collection” [0052]) for completing the internal event (“The garbage collection cost information may include … an expected time of the garbage collection. The memory controller 200 may calculate … the expected time based on an invalid data page count” [0052]) – Memory controller 200 calculates “an expected time of the garbage collection”--
… and
an update circuit (Memory Controller 200, Fig. 3) configured to generate multi-latency information (“garbage collection cost information” [0052]) and provide the multi- latency information to the host device (“The memory controller 200 may provide garbage collection cost information to the host 300” [0052]),
wherein the multi-latency information includes an indicator representing the internal event, and the expected processing times (“The garbage collection cost information may include the expected number of free blocks to be secured through garbage collection among the plurality of memory blocks and an expected time of garbage collection” [0052]) – Garbage collection cost information which is provided to host 300 includes both the calculated expected time of garbage collection (i.e., “the expected processing times”) and additionally includes a number indicative of the internal event (e.g., a number of free blocks expected to result from the garbage collection process; i.e., “an indicator representing the internal event”)--
… and
the storage controller is configured to … processing the command and the internal event based on … the host device (“The memory controller 200 may provide garbage collection cost information to the host 300 in response to a first garbage collection control command received from the host 300 … The memory controller 200 may perform garbage collection on the memory device 100 in response to a second garbage collection control command received from the host 300” [0052] // “The memory controller 200 may control the memory device 100 to perform the program operation … on behalf of the host 300 … the memory controller 200 may provide … a program operation for garbage collection” [0045-46]) – The memory controller 200 processes both host commands and background operations for garbage collection (see ¶¶0045-46; i.e., “process[es] the command and the internal event”). The memory controller 200 is directed by the host device to perform garbage collection (see ¶0052; i.e., processes both the command and the internal event “based on” a command received from the host). --
from among the plurality of allocation ratios based on factors including a number of preprocessed commands, requirements for quality of service (QoS), and an input/output bandwidth corresponding to a storage device at the time of the occurrence of the internal event. – As discussed above (see Examiner Note), the aforementioned limitations fall outside of the scope of Claim 1 and are therefore not required under the BRI of Claim 1.
Although Jeon ¶0053 discloses that second garbage collection control command which is received from the host and which causes garbage collection to be performed is a “set parameter command” for programming storage device registers, Jeon is silent regarding specific parameters which are communicated by the host to the storage device as part of the second garbage collection control command. Specifically, Jeon is silent regarding the following limitations:
allocate resources for processing the command and the internal event based on an allocation ratio selected by the host device
However, Gordon teaches that a host device communicates an optimal “OP ratio” to a storage controller in systems where management of garbage collection is combined with management of an over provision (OP) space. Gordon discloses the following limitations:
allocate resources (Fig. 11, step 2020) for processing the command and the internal event based on an allocation ratio (optimal OP ratio value 460A, Fig. 10) selected (Fig. 11, step 2020) by the host device (GFTL 40, Fig. 3A // Fig. 10)(“GFTL 40 may be configured to provide a single point of control for managing the address translation and GC processes between the application 110, running on the host computer 10, and the NVM storage media 30” [Col. 13, 10-20th lines] // “Analysis module 460 may analyze the received input … to obtain or calculate an optimal OP ratio value 460A” [Col. 31, 50-60th lines] // “As shown in step 2005, the at least one processor 410A may receive a value of one or more run-time performance parameters 481 … As shown in step 2015, the at least one processor 410A may analyze the received at least one run-time performance parameter value, to determine an optimal OP ratio … As shown in step 2020, the at least one processor 410A may limit storage of data objects on the at least one NVM storage device according to the determined OP ratio” [Col. 38, 1-40th lines]) – As shown in Gordon Figs. 10 + 11 and detailed in Col. 38, a GFTL 40 coupled to a NVM controller 311 and a host computer 10 provides a single point of control for managing garbage collection between the host and a storage device controlled by the NVM controller, similar to how the Garbage Collection Controller 310 of Jeon Fig. 3 is coupled to both a host 300 and a memory controller 200 and manages garbage collection between the host and a storage device controlled by the memory controller. Examiner accordingly considers GFTL 40, NVM Controller 311, and Host Computer 10 depicted in Gordon Fig. 3A as analogous to Garbage Collection Controller 310, Memory Controller 200, and Host 300 depicted in Jeon Fig. 3, respectively.
As taught in Gordon, GFTL 40 (i.e., “the host device”) receives (step 2005) and analyzes (step 2015) the run-time performance parameters of a storage device to select an “optimal OP ratio” for the storage device (step 2015); after which data is stored on the storage device according to the optimal OP ratio (step 2020). Examiner notes that the method depicted in Gordon Fig. 11 is analogous to the method depicted in Jeon Fig. 3 whereby garbage collection controller 310 receives and analyzes “garbage collection cost information” to direct (via a second garbage collection control command) data storage on the storage device based on the analyzed garbage collection cost information. As clarified in Gordon, GFTL 40 (as opposed to NVM Controller 311; i.e., “the host device”) selects the optimal OP ratio to be applied to the storage device controlled by NVM Controller 311.
Jeon and Gordon are considered analogous to the claimed invention because they all relate to the same field of scheduling garbage collection for a memory device based on real-time performance data associated with the memory device. Therefore, it would have been obvious for someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Jeon with the teachings of Gordon and realize a storage controller which performs both garbage collection and host write commands on a storage device using an optimal OP ratio which is determined by a host device using real-time performance data of the storage device. Doing so enables storage device owners to dynamically adjust a minimal margin of reserved space maintained in a storage device in view of real-time storage device performance and a desired QoS, resulting in lower price per storage as compared to traditional systems whereby the amount of reserved space maintained in a storage device is static, as disclosed in Gordon Col. 3: “A system and/or method for management of over-provisioning (OP) that may provide adjustable, dynamic, minimal storage OP in real time or in near-real time is therefore desired. Embodiments of the present invention may combine management of a garbage collection (GC) process with the management of OP, and may thus provide adjustable, thin, dynamic storage over provisioning in real time or in near-real time, as elaborated herein. … This may be opposed to common practice in commercially available storage systems, where an overhead, large storage space may be reserved to accommodate the required predefined target QoS performance parameter values, but may subsequently limit the utilization of memory on the storage media and may increase the price of storage per the amount of accessible memory space.” [Col. 3, 35-60th lines].
The combined teachings of Jeon and Gordon render obvious the following limitations:
a latency mapping table (Jeon, Memory Controller 200, Fig. 3) configured to output expected latencies (Jeon, “garbage collection cost information” [0052] // Gordon, “at least one run-time performance parameters” Fig. 11 // “a calculated tail write latency” [Col. 29]) in processing the internal event (Gordon, “one or more run-time performance parameter values 481, including for example … a calculated average write latency … a calculated tail write latency” [Col. 29, 30-35th lines]) – As previously discussed above with respect to Jeon, memory controller 200 transmits “garbage collection cost information” (analogous to the “one or more run-time performance parameters” of Gordon) to the host garbage collection controller 310. As clarified in Gordon, the “one or more run-time performance parameters” can include several values including “average write latency” (i.e., analogous to “expected processing times”) and “tail write latency” (i.e., analogous to “expected latencies”). Accordingly, Memory controller 200 of Jeon reads on the claimed concept of “a latency mapping table configured to output expected latencies” in processing a garbage collection event--,
wherein the multi-latency information (Gordon, “one or more run-time performance parameter values” [Col. 29]) includes … the expected processing times (Gordon, “a calculated average write latency” [Col. 29]) and the expected latencies (Gordon, “a calculated tail write latency” [Col. 29]) respectively (Gordon, “one or more run-time performance parameter values 481, including for example … a calculated average write latency … a calculated tail write latency” [Col. 29, 30-35th lines]) – As clarified in Gordon, the run-time performance parameter values include both average write latency and tail write latency—
each of the plurality of allocation ratios (Gordon, “the over provision (OP) ratio” [Col 2]) represents a ratio of (a portion of resources of the storage controller allocated for processing the internal event) to (a portion of resources of the storage controller allocated for processing a command requested by the host device) (Gordon, “NVM devices such as Flash memory devices include a reserved memory space that is not exposed to the user. The ratio between the total memory space (i.e., the reserved space and the user-accessible space) and the user-accessible space is commonly referred to as the over provision (OP) ratio. The OP ratio may manifest a tradeoff between the available storage space that a user may utilize on the storage system … Setting a large OP ratio may dictate … a large percentage or portion of the storage space may be reserved for the storage system’s GC process” [Col. 2, 45-65th lines] // Col. 10, 20-30th lines) – As taught in Gordon Col. 2, the OP ratio corresponds to a ratio of memory space in a Flash device between a reserved memory space for performing garbage collection (i.e., “allocated for processing the internal event”) to a user-accessible memory space (i.e., “allocated for processing a command by the host device”).
Although Gordon teaches that the optimal OP ratio is selected based on expected processing times and expected latencies according to current, “run-time” performance, Gordon does not disclose calculating expected processing times or latencies for each of a plurality of allocation ratios. Specifically, the combined teachings of Jeon and Gordon do not explicitly disclose the following limitations:
expected processing times for completing the internal event based on each of a plurality of allocation ratios
However, Ye clarifies the following limitations:
expected processing times (Fig. 6) for completing the internal event based on each of a plurality of allocation ratios (Garbage Thresholds 602, Fig. 6)(“FIG. 6 illustrates an example graph 600 that can facilitate dynamic tuning of garbage threshold to reduce unreclaimable garbage overhead … system architecture 600 can be implemented in block storage 110 … Graph 600 plots garbage threshold 602 on the y-axis against … reclamation throughput 608 (in GB/hr) … by leveraging a correlation in graph 600, a system … can determine that an estimated reclamation throughput at 50%, 45%, and 40% garbage thresholds can be 94GB, 100GB, and 114GB, respectively” [0082-84] // Fig. 1) – As shown in Ye Fig. 6, a graph 600 (implemented in block storage 110; see Fig. 1) calculates “an estimated reclamation throughput” (i.e., analogous to “expected processing times for completing the internal event”) for a corresponding “garbage threshold” (i.e., analogous to “an allocation ratio”). Examiner accordingly considers the graph 600 of Ye Fig. 6 as analogous to the “one or more run-time performance parameter values” of Gordon (i.e., “the multi-latency information”). As taught in Ye, estimated reclamation throughput is calculated for each possible garbage threshold which can be allocated for block storage 110 (i.e., reclamation throughput information is calculated “based on each of a plurality of allocation ratios”)
Jeon, Gordon, and Ye are all considered analogous to the claimed invention because they all relate to the same field of scheduling garbage collection for a memory device based on real-time performance of the memory device. Therefore, it would have been obvious for someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Jeon and Gordon with the teachings of Ye and realize a storage controller which generates multi-latency information including expected processing times to complete an internal event at each of a plurality of possible allocation ratios. Doing so enables a dynamic garbage threshold to be established for a storage device, leading to more storage capacity without unintended resource usage, as disclosed in Ye ¶0021: “A system according to the present techniques can adjust the garbage threshold value dynamically and automatically meet a user’s targets. This can lead to more storage capacity being freed without unintended resource usage from doing so” [0021].
The combined teachings of Jeon, Gordon, and Ye render obvious the following limitations:
expected latencies in processing the internal event for each of the plurality of allocation ratios (Ye, Fig. 6) – Examiner notes that the discussion of Ye Fig. 6 above with respect to the claimed concept of “expected processing times for completing the internal event” is equally applicable to the claimed concept of “expected latencies for completing the internal event” for “each of the plurality of allocation ratios”—
corresponding to the plurality of allocation ratios, the expected processing times and the expected latencies being for processing the internal event based on the plurality of allocation ratios (Ye, Fig. 6) – As shown in Ye Fig. 6, the reclamation throughput is calculated for garbage thresholds ranging from 0% to 70%.
Regarding Claim 2,
The same motivation to combine provided in Claim 1 is equally applicable to Claim 2. The combined teachings of Jeon, Gordon, and Ye disclose the following limitations:
The storage controller of claim 1, wherein the internal event comprises
a read reclaim (Gordon, “an internal garbage-collection (GC) mechanism responsible for reclaiming invalid pages” [Col. 1, 50-60th lines]),
a wear leveling (Jeon, “a program operation for wear leveling” [0046]),
a garbage collection (Gordon, “an internal garbage-collection (GC) mechanism” [Col. 1, 50-60th lines]),
a bad block detection, or a block close – Examiner considers the aforementioned limitations as elements selected from a list of alternatives (see MPEP 2143.03)
Regarding Claim 3,
The same motivation to combine provided in Claim 1 is equally applicable to Claim 3. The combined teachings of Jeon, Gordon, and Ye disclose the following limitations:
The storage controller of claim 1 (see Claim 1 limitation mappings above), wherein the plurality of allocation ratios comprise:
a first ratio (Ye, 0%, Fig. 6) where all available resources of the storage controller are allocated to performing the internal event (Ye, “For each block, the garbage threshold can be determined, which can be a measure of a percentage of invalid data of a block … It can also be that the system does not perfom a copy-forward operation on blocks below a certain garbage threshold” [0054-55]) – As taught in Ye, garbage collection is performed on blocks having a percentage of invalid data below the garbage threshold. Accordingly, a garbage threshold of 0% as depicted in Fig. 6 corresponds to a scenario where all blocks are selected for garbage collection (i.e., “all available resources” “allocated to performing the internal event”)--;
a second ratio (Ye, 35%, Fig. 6) where half of the available resources of the storage controller are allocated to performing the internal event and other half of the available resources of the storage controller are allocated to performing a command received from outside – As shown in Ye Fig. 6, a maximal garbage threshold of 70% is considered. Accordingly, a garbage threshold of 35% corresponds to a scenario where “half of the available resources” are allocated for garbage collection, whereas another half is allocated for host writes (e.g., blocks above 35% of invalid data are used for garbage collection whereas blocks below 35% of invalid data are not used for garbage collection and are therefore used for host commands--; and
a third ratio (Ye, 70%, Fig. 6) where a minimum-sized portion of the available resources of the storage controller is allocated to performing the internal event and other portion, except the minimum- sized portion, of the available resources of the storage controller is allocated to performing the command received from outside. – As shown in Ye Fig. 6, a maximal garbage threshold of 70% is considered, resulting in a scenario where the fewest possible blocks can be selected for garbage collection.
Regarding Claim 4,
The same motivation to combine provided in Claim 1 is equally applicable to Claim 4. The combined teachings of Jeon, Gordon, and Ye disclose the following limitations:
The storage controller of claim 1, wherein the duration calculation circuit is configured to obtain an expected processing time (Gordon, “a calculated average write latency” [Col. 29]) corresponding to the internal event, based on an internal write speed (Ye, Reclamation Throughput, Fig. 6) and a size of internal write data (Ye, Total Garbage (GB), Fig. 6), needed to perform the internal event received from the internal event monitoring circuit (Jeon Fig. 3; see also Claim 1 limitation mappings above), and one of the plurality of allocation ratios (Ye, Fig. 6). – As shown in Ye Fig. 6, parameters including reclamation throughput (analogous to “an internal write speed”) and an amount to garbage to be reclaimed (analogous to “a size of internal write data” ”needed to perform the internal event”) are calculated for each garbage threshold. As previously discussed (see Claim 1 limitation mappings above) and as shown in Jeon Fig. 3, memory device state information is stored within the memory controller 200.
Regarding Claim 5,
The same motivation to combine provided in Claim 1 is equally applicable to Claim 5. The combined teachings of Jeon, Gordon, and Ye disclose the following limitations:
The storage controller of claim 3, wherein first multi-latency information generated based on the first ratio (Ye, 0%, Fig. 6) comprises a first latency and a first duration, (Ye, Fig. 6 // see also Claim 1 limitation mappings above) – As taught in Ye, reclamation throughput is calculated for each garbage threshold, including 0%. As previously discussed (see Claim 1 limitation mappings above), a storage controller calculates multi-latency information for each allocation ratio, and multi-latency information includes both a latency and a duration, respectively. Accordingly, the reclamation throughput values calculated for a garbage threshold of 0% correspond to “first multi-latency information” at a first ratio which includes “a first latency” and “a first duration”--,
second multi-latency information generated based on the second ratio (Ye, 35%, Fig. 6) comprises a second latency, which differs from the first latency, and a second duration, which differs from the first duration, -- As discussed above, multi-latency information is calculated for each respective allocation ratio. One of ordinary skill in the art would accordingly understand that multi-latency information calculated at a garbage threshold of 35% would be distinct from (i.e., “differs from”) multi-latency information calculated at a garbage threshold of 0%-- and
third multi-latency information (Ye, 35%, Fig. 6) generated based on the third ratio comprises a third latency, which differs from the first latency and the second latency, and a third duration, which differs from the first duration and the second duration. – One of ordinary skill in the art would understand that multi-latency information calculated at a garbage threshold of 70% would be distinct from the multi-latency information calculated at both 35% and at 0%.
Regarding Claim 6,
The same motivation to combine provided in Claim 1 is equally applicable to Claim 6. The combined teachings of Jeon, Gordon, and Ye disclose the following limitations:
The storage controller of claim 5, wherein the first latency (Gordon “The value of at least one run-time performance parameter may be, for example, … a calculated average write latency” [Col. 7, 10-15th lines]) is greater than the second latency, and the second latency is greater than the third latency (Ye, Fig. 6) – As shown in Ye Fig. 6, the reclamation throughput at a garbage threshold of 0% (analogous to “the first latency”) is greater than the reclamation throughput at 35%, which is greater than the reclamation throughput at 70%--,
and the first duration (Gordon “The value of at least one run-time performance parameter may be, for example, … a calculated tail write latency” [Col. 7, 10-15th lines]) is less than the second duration, and the second duration is less than the third duration. (Gordon, “Data collection module may subsequently calculated or produce from the accumulated information one or more run-time performance parameter values 481, including for example: a calculated average read latency … for at least one NVM device 31 … a calculated tail write latency (e.g., average latency of a top percentage of write access requests)” [Col. 29, 15-35th lines] // “embodiments may employ the GC mechanism to analyze one or more performance parameters … in real time or near-real time” [Col. 3, final ¶ - Col. 4, 1st ¶]) – As previously discussed (see Claim 5 limitation mappings above), examiner considers the respective durations included within the multi-latency information as the duration measurement made while the storage device is operating according to a respective allocation ratio. Accordingly, in this context, tail write latency measurements taken while a storage device is operating according to a 0%, a 35%, and a 70% garbage collection threshold correspond to “the first duration”, “the second duration”, and “the third duration”, respectively. Examiner notes, as discussed above, that selection of a ratio of host-to-drive can be based on average write latency, which is a separate parameter from the tail write latency. Thus, in this example, one of ordinary skill in the art would understand relative values of “latency” measurements made for each respective allocation ratio would be known because the latency measurement forms the basis of selection in Ye Fig. 6 (e.g., as shown in Fig. 6, higher reclamation throughputs times will correspond to lower garbage collection thresholds). In addition, one of ordinary skill in the art would further understand that in this same example, relative “duration” measurements made for each respective allocation ratio would not be known because the latency measurement (and not the duration measurement) forms the basis for selection Ye Fig. 6. As taught in Gordon Cols. 3/4, the one or more performance parameters are analyzed “in real time or near-real time”. One of ordinary skill in the art would accordingly understand that in an environment which operates over a large period of time, numerous “near-real time” measurements would be made; and further would understand that a portion of those measurements would include duration measurements with relative values as claimed above (i.e., “the first duration” is less than “the second duration” which is less than “the third duration”). Therefore, examiner considers the combined teachings of Jeon, Gordon, and Ye as reading on the above limitation, under its Broadest Reasonable Interpretation (BRI).
Claims 7-14 and 19-20 are rejected under 35 U.S.C. 103 as being unpatentable over Jeon further in view of Gordon, Ye, and Sinha et al. (US 20190155682 A1)(hereafter referred to as Sinha).
Regarding Claim 7,
Jeon discloses the following limitations:
An operating method of a storage controller (Memory Controller 200, Fig. 3), the operating method comprising:
detecting occurrence of an internal event (“garbage collection” [0090])(“The garbage collection processor 220 may perform the garbage collection on the memory device 100” [0090]) – Garbage Collection Processor 220 of Memory Controller 200 is instructed to perform garbage collection—,
wherein the internal event is performed in the storage controller independently of a host device (Host 300, Fig. 3)(“the memory controller 200 may provide the command … to perform background operations such as … a program operation for garbage collection” [0046] // ¶0050) – Controller 200 performs garbage collection as a background operation (in contrast to “a write command provided from the host 300”; see ¶0050); i.e., performs garbage collection “independently” of host 300--;
calculating, in response to detecting occurrence of the internal event expected processing times (“an expected time of the garbage collection” [0052]) for completing the internal event (“The garbage collection cost information may include … an expected time of the garbage collection. The memory controller 200 may calculate … the expected time based on an invalid data page count” [0052]) – Memory controller 200 calculates “an expected time of the garbage collection”-- …
generating multi-latency information (“garbage collection cost information” [0052]) … wherein the multi-latency information includes an indicator representing the internal event and the expected processing times (“The garbage collection cost information may include the expected number of free blocks to be secured through garbage collection among the plurality of memory blocks and an expected time of garbage collection” [0052]) – Garbage collection cost information which is provided to host 300 includes both the calculated expected time of garbage collection (i.e., “the expected processing times”) and additionally includes a number indicative of the internal event (e.g., a number of free blocks expected to result from the garbage collection process; i.e., “an indicator representing the internal event”)--
…
providing the multi-latency information to the host device (“The memory controller 200 may provide garbage collection cost information to the host 300” [0052]); and
receiving a response (“a second garbage collection control command” [0052]) …, from the host device … for processing the internal event and the command requested by the host device. (“The memory controller 200 may provide garbage collection cost information to the host 300 in response to a first garbage collection control command received from the host 300 … The memory controller 200 may perform garbage collection on the memory device 100 in response to a second garbage collection control command received from the host 300” [0052] // “The memory controller 200 may control the memory device 100 to perform the program operation … on behalf of the host 300 … the memory controller 200 may provide … a program operation for garbage collection” [0045-46]) – The memory controller 200 processes both host commands and background operations for garbage collection (see ¶¶0045-46; i.e., “process[es] the command and the internal event”). In response to sending garbage collection cost information to the host, the memory controller 200 receives “a second garbage collection control command” from the host and is accordingly directed by the host device to perform garbage collection (see ¶0052; i.e., processes both the command and the internal event “based on” a command received from the host). --
Although Jeon ¶0053 discloses that second garbage collection control command which is received from the host and which causes garbage collection to be performed is a “set parameter command” for programming storage device registers, Jeon is silent regarding specific parameters which are communicated by the host to the storage device as part of the second garbage collection control command. Specifically, Jeon is silent regarding the following limitations:
receiving a response indicating an allocation ratio from the host device to allocate resources for processing the internal event and the command requested by the host device.
However, Gordon teaches that a host device communicates an optimal “OP ratio” to a storage controller in systems where management of garbage collection is combined with management of an over provision (OP) space. Gordon discloses the following limitations:
receiving a response (Fig. 11, step 2020) indicating an allocation ratio (optimal OP ratio value 460A, Fig. 10) … from the host device (GFTL 40, Fig. 3A // Fig. 10) to allocate resources (Fig. 11, step 2020) for processing the internal event and the command requested by the host device. (“GFTL 40 may be configured to provide a single point of control for managing the address translation and GC processes between the application 110, running on the host computer 10, and the NVM storage media 30” [Col. 13, 10-20th lines] // “Analysis module 460 may analyze the received input … to obtain or calculate an optimal OP ratio value 460A” [Col. 31, 50-60th lines] // “As shown in step 2005, the at least one processor 410A may receive a value of one or more run-time performance parameters 481 … As shown in step 2015, the at least one processor 410A may analyze the received at least one run-time performance parameter value, to determine an optimal OP ratio … As shown in step 2020, the at least one processor 410A may limit storage of data objects on the at least one NVM storage device according to the determined OP ratio” [Col. 38, 1-40th lines]) – As shown in Gordon Figs. 10 + 11 and detailed in Col. 38, a GFTL 40 coupled to a NVM controller 311 and a host computer 10 provides a single point of control for managing garbage collection between the host and a storage device controlled by the NVM controller, similar to how the Garbage Collection Controller 310 of Jeon Fig. 3 is coupled to both a host 300 and a memory controller 200 and manages garbage collection between the host and a storage device controlled by the memory controller. Examiner accordingly considers GFTL 40, NVM Controller 311, and Host Computer 10 depicted in Gordon Fig. 3A as analogous to Garbage Collection Controller 310, Memory Controller 200, and Host 300 depicted in Jeon Fig. 3, respectively.
As taught in Gordon, GFTL 40 (i.e., “the host device”) receives (step 2005) and analyzes (step 2015) the run-time performance parameters of a storage device to select an “optimal OP ratio” for the storage device (step 2015); after which data is stored on the storage device according to the optimal OP ratio (step 2020). Examiner notes that the method depicted in Gordon Fig. 11 is analogous to the method depicted in Jeon Fig. 3 whereby garbage collection controller 310 receives and analyzes “garbage collection cost information” to direct (via a second garbage collection control command) data storage on the storage device based on the analyzed garbage collection cost information. As clarified in Gordon, GFTL 40 (as opposed to NVM Controller 311; i.e., “the host device”) selects the optimal OP ratio to be applied to the storage device controlled by NVM Controller 311.
Jeon and Gordon are considered analogous to the claimed invention because they all relate to the same field of scheduling garbage collection for a memory device based on real-time performance data associated with the memory device. Therefore, it would have been obvious for someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Jeon with the teachings of Gordon and realize a storage controller which performs both garbage collection and host write commands on a storage device using an optimal OP ratio which is determined by a host device using real-time performance data of the storage device. Doing so enables storage device owners to dynamically adjust a minimal margin of reserved space maintained in a storage device in view of real-time storage device performance and a desired QoS, resulting in lower price per storage as compared to traditional systems whereby the amount of reserved space maintained in a storage device is static, as disclosed in Gordon Col. 3: “A system and/or method for management of over-provisioning (OP) that may provide adjustable, dynamic, minimal storage OP in real time or in near-real time is therefore desired. Embodiments of the present invention may combine management of a garbage collection (GC) process with the management of OP, and may thus provide adjustable, thin, dynamic storage over provisioning in real time or in near-real time, as elaborated herein. … This may be opposed to common practice in commercially available storage systems, where an overhead, large storage space may be reserved to accommodate the required predefined target QoS performance parameter values, but may subsequently limit the utilization of memory on the storage media and may increase the price of storage per the amount of accessible memory space.” [Col. 3, 35-60th lines].
The combined teachings of Jeon and Gordon render obvious the following limitations:
the plurality of allocation ratios (Gordon, “the over provision (OP) ratio” [Col 2]) represents a
ratio of (a portion of resources allocated for processing the internal event ) to (a portion of resources allocated for processing a command requested by the host device) (Gordon, “NVM devices such as Flash memory devices include a reserved memory space that is not exposed to the user. The ratio between the total memory space (i.e., the reserved space and the user-accessible space) and the user-accessible space is commonly referred to as the over provision (OP) ratio. The OP ratio may manifest a tradeoff between the available storage space that a user may utilize on the storage system … Setting a large OP ratio may dictate … a large percentage or portion of the storage space may be reserved for the storage system’s GC process” [Col. 2, 45-65th lines] // Col. 10, 20-30th lines) – As taught in Gordon Col. 2, the OP ratio corresponds to a ratio of memory space in a Flash device between a reserved memory space for performing garbage collection (i.e., “allocated for processing the internal event”) to a user-accessible memory space (i.e., “allocated for processing a command requested by the host device”).;
calculating expected latencies in processing the internal event (“Gordon, “a calculated tail write latency” [Col. 29]) … wherein the multi-latency information Gordon, “at least one run-time performance parameters” Fig. 11) includes … the expected processing times (Gordon, “a calculated average write latency” [Col. 29]) and the expected latencies (Gordon, “a calculated tail write latency” [Col. 29]) for processing the internal event (Gordon, “one or more run-time performance parameter values 481, including for example … a calculated average write latency … a calculated tail write latency” [Col. 29, 30-35th lines]) – As previously discussed above with respect to Jeon, memory controller 200 transmits “garbage collection cost information” (analogous to the “one or more run-time performance parameters” of Gordon) to the host garbage collection controller 310. As clarified in Gordon, the “one or more run-time performance parameters” can include several values including “average write latency” (i.e., analogous to “expected processing times”) and “tail write latency” (i.e., analogous to “expected latencies”). As clarified in Gordon, the run-time performance parameter values include both average write latency and tail write latency—
an allocation ratio, selected by the host device from among the plurality of allocation ratios (Gordon, “the at least one processor 410A may analyze the received at least one run-time performance parameter value, to determine an optimal OP ratio” [Col. 38]) – FTL 40 selects an “optimal” OP ratio based on the run-time performance parameters (i.e., “select[s]” “an allocation ratio” “from among the plurality of allocation ratios”)—
Although Gordon teaches that the optimal OP ratio is selected based on expected processing times and expected latencies according to current, “run-time” performance, Gordon does not disclose calculating expected processing times or latencies for each of a plurality of allocation ratios. Specifically, the combined teachings of Jeon and Gordon do not explicitly disclose the following limitations:
calculating … expected processing times for completing the internal event based on each of a plurality of allocation ratios,
However, Ye clarifies the following limitations:
calculating … expected processing times (Fig. 6) for completing the internal event based on each of a plurality of allocation ratios (Garbage Thresholds 602, Fig. 6)(“FIG. 6 illustrates an example graph 600 that can facilitate dynamic tuning of garbage threshold to reduce unreclaimable garbage overhead … system architecture 600 can be implemented in block storage 110 … Graph 600 plots garbage threshold 602 on the y-axis against … reclamation throughput 608 (in GB/hr) … by leveraging a correlation in graph 600, a system … can determine that an estimated reclamation throughput at 50%, 45%, and 40% garbage thresholds can be 94GB, 100GB, and 114GB, respectively” [0082-84] // Fig. 1) – As shown in Ye Fig. 6, a graph 600 (implemented in block storage 110; see Fig. 1) calculates “an estimated reclamation throughput” (i.e., analogous to “expected processing times for completing the internal event”) for a corresponding “garbage threshold” (i.e., analogous to “an allocation ratio”). Examiner accordingly considers the graph 600 of Ye Fig. 6 as analogous to the “one or more run-time performance parameter values” of Gordon (i.e., “the multi-latency information”). As taught in Ye, estimated reclamation throughput is calculated for each possible garbage threshold which can be allocated for block storage 110 (i.e., reclamation throughput information is calculated “based on each of a plurality of allocation ratios”)
Jeon, Gordon, and Ye are all considered analogous to the claimed invention because they all relate to the same field of scheduling garbage collection for a memory device based on real-time performance of the memory device. Therefore, it would have been obvious for someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Jeon and Gordon with the teachings of Ye and realize a storage controller which generates multi-latency information including expected processing times to complete an internal event at each of a plurality of possible allocation ratios. Doing so enables a dynamic garbage threshold to be established for a storage device, leading to more storage capacity without unintended resource usage, as disclosed in Ye ¶0021: “A system according to the present techniques can adjust the garbage threshold value dynamically and automatically meet a user’s targets. This can lead to more storage capacity being freed without unintended resource usage from doing so” [0021].
The combined teachings of Jeon, Gordon, and Ye render obvious the following limitations:
calculating expected latencies in processing the internal event based on each of the plurality of allocation ratios; (Ye, Fig. 6) – Examiner notes that the discussion of Ye Fig. 6 above with respect to the claimed concept of “expected processing times for completing the internal event” is equally applicable to the claimed concept of “expected latencies in processing the internal event” for “each of the plurality of allocation ratios”—
multi-latency information (Ye, Fig. 6) respectively corresponding to the plurality of allocation ratios … the expected processing times and the expected latencies for processing the internal event based on the plurality of allocation ratios (Ye, Fig. 6) – As shown in Ye Fig. 6, the reclamation throughput is calculated for garbage thresholds ranging from 0% to 70%.
an allocation ratio, selected by the host device from among the plurality of allocation ratios based on factors including … requirements for quality of service (QoS) (Gordon, “given a required quality of service (QoS) target … a person skilled in the art may employ such a known mathematical model to estimate a minimal OP ratio required in order to accommodate the QoS target” [Col. 3, 10-20th lines]) – As taught in Gordon, QoS targets inform selection of the optimal OP ratio--, and
an input/output bandwidth corresponding to a storage device at the time of the occurrence of the internal event (Ye, “It can also be that a system does not perform a copy-forward operation on blocks below a certain garbage threshold … because performing a copy-forward can consume processing resources, memory resources, I/O resources, and network bandwidth resources. Consuming these computing resources can negatively impact a system’s front-end access latency and/or transactions per second (TPS). Given that, there can be scenarios where determining a garbage threshold value is not straightforward.” [0054-55]) – As taught in Ye, selection of a garbage threshold is informed by a desire to minimize consumption of both “I/O” and “network bandwidth” resources. One of ordinary skill in the art would accordingly understand that “an input/output bandwidth” at a time garbage collection is performed would inform selection of a garbage threshold.
Jeon ¶0050 provides several examples of parameters (e.g., “host read amount”; “busy time”) which inform when the host device sends the memory controller the second garbage collection control command. Gordon Col. 10, 10-30th lines provides several examples of run-time performance parameters (e.g., “a write amplification (WA) ratio”; “a frequency of write access requests”) which inform selection of the optimal OP ratio. Ye ¶0079 discloses that parameters including “garbage size” and “target reclamation throughput” inform selection of a garbage threshold. However, the combined teachings of Jeon, Gordon, and Ye do not explicitly disclose the following limitations:
factors including a number of preprocessed commands, requirements for quality of service (QoS), and an input/output bandwidth corresponding to the storage device at the time of the occurrence of the internal event,
However, Sinha clarifies several types of run-time statistics which are measured by a storage controller. Sinha discloses the following limitations:
factors (“performance information” [0003]) including
a number of preprocessed commands (“a number of host read commands” [0007]),
requirements for quality of service (QoS) (“a Quality of Service requirement” [0006]), and
an input/output bandwidth (“a current number of IOPS” [0007]) corresponding to the storage device at the time of the occurrence of the internal event, (“the device controller is configured to update standards defined performance statistics … the device controller may also update finer granular performance statistics … The performance information may be returned to the host software in response to a log request” [0037] // “a system and method for advanced storage device telemetry system … store at least one granular performance information … provision one of the at least one SSD based on a stored at least one granular performance information and a Quality of Service requirement … the at least one granular performance information includes at least one of a current number of IOPS … a number of host read commands” [0005-07] // Figs. 1 + 3) – As shown in Sinha Fig. 1, a device controller 140 provides “device attribute information” to host software 120 so the host software can provision execution of instructions on an SSD (see ¶0011), similar to how memory controller 200 of Jeon Fig. 3 provides garbage collection cost information to a host device 300 so the host can cause garbage collection to be performed. Examiner accordingly considers device controller 140 of Sinha as analogous to memory controller 200 of Jeon. As taught in Sinha, the device controller logs and returns “performance information” (e.g., including a number of host read commands and a current IOPS) to host software (see ¶0037) so that the host can use the received performance information in combination with a QoS requirement to provision performance of the SSD controlled by the device controller. Such a process is analogous to how a host (e.g., GFTL 40 of Gordon Fig. 3A) uses run-time performance parameters to select an optimal OP ratio.
Jeon, Gordon, Ye, and Sinha are considered analogous to the claimed invention because they all relate to the same field of configuring storage device operation based on real-time performance information logged by the storage device. Therefore, it would have been obvious for someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Jeon, Gordon, and Ye with the teachings of Sinha and realize a method of using each of a number of commands, a QoS requirement, and an I/O bandwidth logged by a storage device to configure performance of the storage device. Doing so increases the scope of information relating to a storage device which is available for a host software to analyze, improving the ability of a host to make usage changes based on a current workload, as disclosed in Sinha ¶0003: “Storage device telemetry data may be utilized in a number of ways from managing device workloads to predicting failures … The typical information provided through SMART attributes and other log pages is a snapshot of some of the SSD’s operational attributes at a given time … the limited scope of the information limits the functionality to assist host software with making necessary device usage changes to match the dynamic nature of workload performance requirements. An improved device telemetry system is therefore desired.” [0003]
Regarding Claim 8,
The same motivation to combine provided in Claim 7 is equally applicable to Claim 8. The combined teachings of Jeon, Gordon, Ye, and Sinha disclose the following limitations:
The operating method of claim 7, wherein the internal event comprises
a read reclaim (Gordon, “an internal garbage-collection (GC) mechanism responsible for reclaiming invalid pages” [Col. 1, 50-60th lines]),
a wear leveling (Jeon, “a program operation for wear leveling” [0046]),
a garbage collection (Gordon, “an internal garbage-collection (GC) mechanism” [Col. 1, 50-60th lines]),
a bad block detection, or a block close – Examiner considers the aforementioned limitations as elements selected from a list of alternatives (see MPEP 2143.03)
Regarding Claim 9,
The same motivation to combine provided in Claim 7 is equally applicable to Claim 9. The combined teachings of Jeon, Gordon, Ye, and Sinha disclose the following limitations:
The operating method of claim 7 (see Claim 7 limitation mappings above), wherein the plurality of allocation ratios comprise:
a first ratio (Ye, 0%, Fig. 6) where all available resources of the storage controller are allocated to an operation of performing the internal event (Ye, “For each block, the garbage threshold can be determined, which can be a measure of a percentage of invalid data of a block … It can also be that the system does not perfom a copy-forward operation on blocks below a certain garbage threshold” [0054-55]) – As taught in Ye, garbage collection is performed on blocks having a percentage of invalid data below the garbage threshold. Accordingly, a garbage threshold of 0% as depicted in Fig. 6 corresponds to a scenario where all blocks are selected for garbage collection (i.e., “all available resources” “allocated to performing the internal event”)--;
a second ratio (Ye, 35%, Fig. 6) where half of the available resources of the storage controller are allocated to the operation of performing the internal event and other half of the available resources of the storage controller are allocated to an operation of performing a command received from outside – As shown in Ye Fig. 6, a maximal garbage threshold of 70% is considered. Accordingly, a garbage threshold of 35% corresponds to a scenario where “half of the available resources” are allocated for garbage collection, whereas another half is allocated for host writes (e.g., blocks above 35% of invalid data are used for garbage collection whereas blocks below 35% of invalid data are not used for garbage collection and are therefore used for host commands--; and
a third ratio (Ye, 70%, Fig. 6) where a minimum-sized portion of the available resources of the storage controller is allocated to the operation of performing the internal event and other portion, except the minimum- sized portion, of the available resources of the storage controller is allocated to performing the command received from outside. – As shown in Ye Fig. 6, a maximal garbage threshold of 70% is considered, resulting in a scenario where the fewest possible blocks can be selected for garbage collection.
Regarding Claim 10,
The same motivation to combine provided in Claim 7 is equally applicable to Claim 10. The combined teachings of Jeon, Gordon, Ye, and Sinha disclose the following limitations:
The operating method of claim 9, wherein first multi-latency information generated based on the first ratio (Ye, 0%, Fig. 6) comprises a first latency and a first duration, (Ye, Fig. 6 // see also Claim 7 limitation mappings above) – As taught in Ye, reclamation throughput is calculated for each garbage threshold, including 0%. As previously discussed (see Claim 7 limitation mappings above), a storage controller calculates multi-latency information for each allocation ratio, and multi-latency information includes both a latency and a duration, respectively. Accordingly, the reclamation throughput values calculated for a garbage threshold of 0% correspond to “first multi-latency information” at a first ratio which includes “a first latency” and “a first duration”--,
second multi-latency information generated based on the second ratio (Ye, 35%, Fig. 6) comprises a second latency, which differs from the first latency, and a second duration, which differs from the first duration, -- As discussed above, multi-latency information is calculated for each respective allocation ratio. One of ordinary skill in the art would accordingly understand that multi-latency information calculated at a garbage threshold of 35% would be distinct from (i.e., “differs from”) multi-latency information calculated at a garbage threshold of 0%-- and
third multi-latency information (Ye, 35%, Fig. 6) generated based on the third ratio comprises a third latency, which differs from the first latency and the second latency, and a third duration, which differs from the first duration and the second duration. – One of ordinary skill in the art would understand that multi-latency information calculated at a garbage threshold of 70% would be distinct from the multi-latency information calculated at both 35% and at 0%.
the first latency (Gordon “The value of at least one run-time performance parameter may be, for example, … a calculated average write latency” [Col. 7, 10-15th lines]) is greater than the second latency, and the second latency is greater than the third latency (Ye, Fig. 6) – As shown in Ye Fig. 6, the reclamation throughput at a garbage threshold of 0% (analogous to “the first latency”) is greater than the reclamation throughput at 35%, which is greater than the reclamation throughput at 70%--,
and the first duration (Gordon “The value of at least one run-time performance parameter may be, for example, … a calculated tail write latency” [Col. 7, 10-15th lines]) is less than the second duration, and the second duration is less than the third duration. (Gordon, “Data collection module may subsequently calculated or produce from the accumulated information one or more run-time performance parameter values 481, including for example: a calculated average read latency … for at least one NVM device 31 … a calculated tail write latency (e.g., average latency of a top percentage of write access requests)” [Col. 29, 15-35th lines] // “embodiments may employ the GC mechanism to analyze one or more performance parameters … in real time or near-real time” [Col. 3, final ¶ - Col. 4, 1st ¶]) – As previously discussed (see Claim 5 limitation mappings above), examiner considers the respective durations included within the multi-latency information as the duration measurement made while the storage device is operating according to a respective allocation ratio. Accordingly, in this context, tail write latency measurements taken while a storage device is operating according to a 0%, a 35%, and a 70% garbage collection threshold correspond to “the first duration”, “the second duration”, and “the third duration”, respectively. Examiner notes, as discussed above, that selection of a ratio of host-to-drive can be based on average write latency, which is a separate parameter from the tail write latency. Thus, in this example, one of ordinary skill in the art would understand relative values of “latency” measurements made for each respective allocation ratio would be known because the latency measurement forms the basis of selection in Ye Fig. 6 (e.g., as shown in Fig. 6, higher reclamation throughputs times will correspond to lower garbage collection thresholds). In addition, one of ordinary skill in the art would further understand that in this same example, relative “duration” measurements made for each respective allocation ratio would not be known because the latency measurement (and not the duration measurement) forms the basis for selection Ye Fig. 6. As taught in Gordon Cols. 3/4, the one or more performance parameters are analyzed “in real time or near-real time”. One of ordinary skill in the art would accordingly understand that in an environment which operates over a large period of time, numerous “near-real time” measurements would be made; and further would understand that a portion of those measurements would include duration measurements with relative values as claimed above (i.e., “the first duration” is less than “the second duration” which is less than “the third duration”). Therefore, examiner considers the combined teachings of Jeon, Gordon, and Ye as reading on the above limitation, under its Broadest Reasonable Interpretation (BRI).
Regarding Claim 11,
Jeon discloses the following limitations:
A storage system comprising:
a storage device (Memory Controller 200, Fig. 3) including an internal event monitoring circuit (Garbage Collection Processor 220, Fig. 3) configured to detect an occurrence of an internal event (“garbage collection” [0090])(“The garbage collection processor 220 may perform the garbage collection on the memory device 100” [0090]) – Garbage Collection Processor 220 of Memory Controller 200 is instructed to perform garbage collection—
that is performed in a storage controller (Memory Controller 200, Fig. 3) independently of a host device (Host 300, Fig. 3)(“the memory controller 200 may provide the command … to perform background operations such as … a program operation for garbage collection” [0046] // ¶0050) – Controller 200 performs garbage collection as a background operation (in contrast to “a write command provided from the host 300”; see ¶0050); i.e., performs garbage collection “independently” of host 300--,
a duration calculation circuit (Memory Controller 200, Fig. 3) configured to calculate expected processing times (“an expected time of the garbage collection” [0052]) of the internal event (“The garbage collection cost information may include … an expected time of the garbage collection. The memory controller 200 may calculate … the expected time based on an invalid data page count” [0052]) – Memory controller 200 calculates “an expected time of the garbage collection”--
… and
an update circuit (Memory Controller 200, Fig. 3) configured to generate multi-latency information (“garbage collection cost information” [0052]) and provide the multi-latency information to the host device (“The memory controller 200 may provide garbage collection cost information to the host 300” [0052]),
wherein the multi-latency information includes an indicator representing the internal event and the expected processing times (“The garbage collection cost information may include the expected number of free blocks to be secured through garbage collection among the plurality of memory blocks and an expected time of garbage collection” [0052]) – Garbage collection cost information which is provided to host 300 includes both the calculated expected time of garbage collection (i.e., “the expected processing times”) and additionally includes a number indicative of the internal event (e.g., a number of free blocks expected to result from the garbage collection process; i.e., “an indicator representing the internal event”)--
… and
the host device configured to …
provide the storage device with mode information (“a second garbage collection control command” [0052]) …,
wherein the storage device is configured to receive the mode information from the host device and … processing the internal event and the command requested by the host device based on … the mode information. (“The memory controller 200 may provide garbage collection cost information to the host 300 in response to a first garbage collection control command received from the host 300 … The memory controller 200 may perform garbage collection on the memory device 100 in response to a second garbage collection control command received from the host 300” [0052] // “The memory controller 200 may control the memory device 100 to perform the program operation … on behalf of the host 300 … the memory controller 200 may provide … a program operation for garbage collection” [0045-46]) – The memory controller 200 processes both host commands and background operations for garbage collection (see ¶¶0045-46; i.e., “process[es] the command and the internal event”). In response to sending garbage collection cost information to the host, the memory controller 200 is directed by the host device to perform garbage collection (see ¶0052; i.e., processes both the command and the internal event “based on” a command received from the host). --
Although Jeon ¶0053 discloses that second garbage collection control command which is received from the host and which causes garbage collection to be performed is a “set parameter command” for programming storage device registers, Jeon is silent regarding specific parameters which are communicated by the host to the storage device as part of the second garbage collection control command. Specifically, Jeon is silent regarding the following limitations:
allocate available resources of the storage controller for processing the internal event and the command requested by the host device based on the selected allocation ratio indicated by the mode information.
However, Gordon teaches that a host device communicates an optimal “OP ratio” to a storage controller in systems where management of garbage collection is combined with management of an over provision (OP) space. Gordon discloses the following limitations:
allocate available resources (Fig. 11, step 2020) of the storage controller (NVM controller 311, Fig. 3A) for processing the internal event and the command requested by the host device (GFTL 40, Fig. 3A // Fig. 10) based on the selected (Fig. 11, step 2020) allocation ratio (optimal OP ratio value 460A, Fig. 10) indicated by the mode information. (“GFTL 40 may be configured to provide a single point of control for managing the address translation and GC processes between the application 110, running on the host computer 10, and the NVM storage media 30” [Col. 13, 10-20th lines] // “Analysis module 460 may analyze the received input … to obtain or calculate an optimal OP ratio value 460A” [Col. 31, 50-60th lines] // “As shown in step 2005, the at least one processor 410A may receive a value of one or more run-time performance parameters 481 … As shown in step 2015, the at least one processor 410A may analyze the received at least one run-time performance parameter value, to determine an optimal OP ratio … As shown in step 2020, the at least one processor 410A may limit storage of data objects on the at least one NVM storage device according to the determined OP ratio” [Col. 38, 1-40th lines]) – As shown in Gordon Figs. 10 + 11 and detailed in Col. 38, a GFTL 40 coupled to a NVM controller 311 and a host computer 10 provides a single point of control for managing garbage collection between the host and a storage device controlled by the NVM controller, similar to how the Garbage Collection Controller 310 of Jeon Fig. 3 is coupled to both a host 300 and a memory controller 200 and manages garbage collection between the host and a storage device controlled by the memory controller. Examiner accordingly considers GFTL 40, NVM Controller 311, and Host Computer 10 depicted in Gordon Fig. 3A as analogous to Garbage Collection Controller 310, Memory Controller 200, and Host 300 depicted in Jeon Fig. 3, respectively.
As taught in Gordon, GFTL 40 (i.e., “the host device”) receives (step 2005) and analyzes (step 2015) the run-time performance parameters of a storage device to select an “optimal OP ratio” for the storage device (step 2015); after which data is stored on the storage device according to the optimal OP ratio (step 2020). Examiner notes that the method depicted in Gordon Fig. 11 is analogous to the method depicted in Jeon Fig. 3 whereby garbage collection controller 310 receives and analyzes “garbage collection cost information” to direct (via a second garbage collection control command) data storage on the storage device based on the analyzed garbage collection cost information. As clarified in Gordon, GFTL 40 (as opposed to NVM Controller 311; i.e., “the host device”) selects the optimal OP ratio to be applied to the storage device controlled by NVM Controller 311.
Jeon and Gordon are considered analogous to the claimed invention because they all relate to the same field of scheduling garbage collection for a memory device based on real-time performance data associated with the memory device. Therefore, it would have been obvious for someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Jeon with the teachings of Gordon and realize a storage controller which performs both garbage collection and host write commands on a storage device using an optimal OP ratio which is determined by a host device using real-time performance data of the storage device. Doing so enables storage device owners to dynamically adjust a minimal margin of reserved space maintained in a storage device in view of real-time storage device performance and a desired QoS, resulting in lower price per storage as compared to traditional systems whereby the amount of reserved space maintained in a storage device is static, as disclosed in Gordon Col. 3: “A system and/or method for management of over-provisioning (OP) that may provide adjustable, dynamic, minimal storage OP in real time or in near-real time is therefore desired. Embodiments of the present invention may combine management of a garbage collection (GC) process with the management of OP, and may thus provide adjustable, thin, dynamic storage over provisioning in real time or in near-real time, as elaborated herein. … This may be opposed to common practice in commercially available storage systems, where an overhead, large storage space may be reserved to accommodate the required predefined target QoS performance parameter values, but may subsequently limit the utilization of memory on the storage media and may increase the price of storage per the amount of accessible memory space.” [Col. 3, 35-60th lines].
The combined teachings of Jeon and Gordon render obvious the following limitations:
a plurality of allocation ratios (Gordon, “the over provision (OP) ratio” [Col 2]), wherein each of the plurality of allocation ratios represents a ratio of (a portion of resources of the storage controller allocated for processing the internal event ) to (a portion of resources of the storage controller allocated for processing a command requested by a host device) (Gordon, “NVM devices such as Flash memory devices include a reserved memory space that is not exposed to the user. The ratio between the total memory space (i.e., the reserved space and the user-accessible space) and the user-accessible space is commonly referred to as the over provision (OP) ratio. The OP ratio may manifest a tradeoff between the available storage space that a user may utilize on the storage system … Setting a large OP ratio may dictate … a large percentage or portion of the storage space may be reserved for the storage system’s GC process” [Col. 2, 45-65th lines] // Col. 10, 20-30th lines) – As taught in Gordon Col. 2, the OP ratio corresponds to a ratio of memory space in a Flash device between a reserved memory space for performing garbage collection (i.e., “allocated for processing the internal event”) to a user-accessible memory space (i.e., “allocated for processing a command by the host device”). ,
wherein the multi-latency information (Gordon, “one or more run-time performance parameter values” [Col. 29]) includes … the expected processing times (Gordon, “a calculated average write latency” [Col. 29]) and expected latencies (Gordon, “a calculated tail write latency” [Col. 29]) respectively (Gordon, “one or more run-time performance parameter values 481, including for example … a calculated average write latency … a calculated tail write latency” [Col. 29, 30-35th lines]) – As clarified in Gordon, the run-time performance parameter values include both average write latency and tail write latency—
the host device configured to select an allocation ratio from among the plurality of allocation ratios (Gordon, “the at least one processor 410A may analyze the received at least one run-time performance parameter value, to determine an optimal OP ratio” [Col. 38]) – FTL 40 selects an “optimal” OP ratio based on the run-time performance parameters (i.e., “select[s] an allocation ratio from among the plurality of allocation ratios”)—
provide the storage device with mode information (Jeon, “a second garbage collection control command” [0052]) indicating the selected allocation ratio (Gordon, “an optimal OP ratio” [Col. 38]) – As discussed above, FTL 40 determines the optimal allocation ratio (per Gordon); and the host device sends the second garbage collection control command to the memory controller to start garbage collection (per Jeon),
Although Gordon teaches that the optimal OP ratio is selected based on expected processing times and expected latencies according to current, “run-time” performance, Gordon does not disclose calculating expected processing times or latencies for each of a plurality of allocation ratios. Specifically, the combined teachings of Jeon and Gordon do not explicitly disclose the following limitations:
calculate expected processing times of the internal event based on each of a plurality of allocation ratios
However, Ye clarifies the following limitations:
calculate expected processing times (Fig. 6) of the internal event based on each of a plurality of allocation ratios (Garbage Thresholds 602, Fig. 6)(“FIG. 6 illustrates an example graph 600 that can facilitate dynamic tuning of garbage threshold to reduce unreclaimable garbage overhead … system architecture 600 can be implemented in block storage 110 … Graph 600 plots garbage threshold 602 on the y-axis against … reclamation throughput 608 (in GB/hr) … by leveraging a correlation in graph 600, a system … can determine that an estimated reclamation throughput at 50%, 45%, and 40% garbage thresholds can be 94GB, 100GB, and 114GB, respectively” [0082-84] // Fig. 1) – As shown in Ye Fig. 6, a graph 600 (implemented in block storage 110; see Fig. 1) calculates “an estimated reclamation throughput” (i.e., analogous to “expected processing times of the internal event”) for a corresponding “garbage threshold” (i.e., analogous to “an allocation ratio”). Examiner accordingly considers the graph 600 of Ye Fig. 6 as analogous to the “one or more run-time performance parameter values” of Gordon (i.e., “the multi-latency information”). As taught in Ye, estimated reclamation throughput is calculated for each possible garbage threshold which can be allocated for block storage 110 (i.e., reclamation throughput information is calculated “based on each of a plurality of allocation ratios”)
Jeon, Gordon, and Ye are all considered analogous to the claimed invention because they all relate to the same field of scheduling garbage collection for a memory device based on real-time performance of the memory device. Therefore, it would have been obvious for someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Jeon and Gordon with the teachings of Ye and realize a storage controller which generates multi-latency information including expected processing times to complete an internal event at each of a plurality of possible allocation ratios. Doing so enables a dynamic garbage threshold to be established for a storage device, leading to more storage capacity without unintended resource usage, as disclosed in Ye ¶0021: “A system according to the present techniques can adjust the garbage threshold value dynamically and automatically meet a user’s targets. This can lead to more storage capacity being freed without unintended resource usage from doing so” [0021].
The combined teachings of Jeon, Gordon, and Ye render obvious the following limitations:
corresponding to the plurality of allocation ratios the expected processing times and the expected latencies (Fig. 6) being for processing the internal event based on the plurality of allocation ratios; -- Examiner notes that the discussion of Ye Fig. 6 above with respect to the claimed concept of “expected processing times of the internal event” is equally applicable to the claimed concept of “expected latencies for completing the internal event” for “each of the plurality of allocation ratios”. As shown in Ye Fig. 6, the reclamation throughput is calculated for garbage thresholds ranging from 0% to 70%.—
select an allocation ratio from among the plurality of allocation ratios based on factors including
…,
requirements for quality of service (QoS) (Gordon, “given a required quality of service (QoS) target … a person skilled in the art may employ such a known mathematical model to estimate a minimal OP ratio required in order to accommodate the QoS target” [Col. 3, 10-20th lines]) – As taught in Gordon, QoS targets inform selection of the optimal OP ratio--, and
an input/output bandwidth corresponding to the storage device at the time of the occurrence of the internal event, (Ye, “It can also be that a system does not perform a copy-forward operation on blocks below a certain garbage threshold … because performing a copy-forward can consume processing resources, memory resources, I/O resources, and network bandwidth resources. Consuming these computing resources can negatively impact a system’s front-end access latency and/or transactions per second (TPS). Given that, there can be scenarios where determining a garbage threshold value is not straightforward.” [0054-55]) – As taught in Ye, selection of a garbage threshold is informed by a desire to minimize consumption of both “I/O” and “network bandwidth” resources. One of ordinary skill in the art would accordingly understand that “an input/output bandwidth” at a time garbage collection is performed would inform selection of a garbage threshold.
Jeon ¶0050 provides several examples of parameters (e.g., “host read amount”; “busy time”) which inform when the host device sends the memory controller the second garbage collection control command. Gordon Col. 10, 10-30th lines provides several examples of run-time performance parameters (e.g., “a write amplification (WA) ratio”; “a frequency of write access requests”) which inform selection of the optimal OP ratio. Ye ¶0079 discloses that parameters including “garbage size” and “target reclamation throughput” inform selection of a garbage threshold. However, the combined teachings of Jeon, Gordon, and Ye do not explicitly disclose the following limitations:
factors including a number of preprocessed commands, requirements for quality of service (QoS), and an input/output bandwidth corresponding to the storage device at the time of the occurrence of the internal event,
However, Sinha clarifies several types of run-time statistics which are measured by a storage controller. Sinha discloses the following limitations:
factors (“performance information” [0003]) including
a number of preprocessed commands (“a number of host read commands” [0007]),
requirements for quality of service (QoS) (“a Quality of Service requirement” [0006]), and
an input/output bandwidth (“a current number of IOPS” [0007]) corresponding to the storage device at the time of the occurrence of the internal event, (“the device controller is configured to update standards defined performance statistics … the device controller may also update finer granular performance statistics … The performance information may be returned to the host software in response to a log request” [0037] // “a system and method for advanced storage device telemetry system … store at least one granular performance information … provision one of the at least one SSD based on a stored at least one granular performance information and a Quality of Service requirement … the at least one granular performance information includes at least one of a current number of IOPS … a number of host read commands” [0005-07] // Figs. 1 + 3) – As shown in Sinha Fig. 1, a device controller 140 provides “device attribute information” to host software 120 so the host software can provision execution of instructions on an SSD (see ¶0011), similar to how memory controller 200 of Jeon Fig. 3 provides garbage collection cost information to a host device 300 so the host can cause garbage collection to be performed. Examiner accordingly considers device controller 140 of Sinha as analogous to memory controller 200 of Jeon. As taught in Sinha, the device controller logs and returns “performance information” (e.g., including a number of host read commands and a current IOPS) to host software (see ¶0037) so that the host can use the received performance information in combination with a QoS requirement to provision performance of the SSD controlled by the device controller. Such a process is analogous to how a host (e.g., GFTL 40 of Gordon Fig. 3A) uses run-time performance parameters to select an optimal OP ratio.
Jeon, Gordon, Ye, and Sinha are considered analogous to the claimed invention because they all relate to the same field of configuring storage device operation based on real-time performance information logged by the storage device. Therefore, it would have been obvious for someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Jeon, Gordon, and Ye with the teachings of Sinha and realize a method of using each of a number of commands, a QoS requirement, and an I/O bandwidth logged by a storage device to configure performance of the storage device. Doing so increases the scope of information relating to a storage device which is available for a host software to analyze, improving the ability of a host to make usage changes based on a current workload, as disclosed in Sinha ¶0003: “Storage device telemetry data may be utilized in a number of ways from managing device workloads to predicting failures … The typical information provided through SMART attributes and other log pages is a snapshot of some of the SSD’s operational attributes at a given time … the limited scope of the information limits the functionality to assist host software with making necessary device usage changes to match the dynamic nature of workload performance requirements. An improved device telemetry system is therefore desired.” [0003]
Regarding Claim 12,
The same motivation to combine provided in Claim 11 is equally applicable to Claim 12. The combined teachings of Jeon, Gordon, Ye, and Sinha disclose the following limitations:
The storage system of claim 11 (see Claim 11 limitation mappings above), wherein the plurality of allocation ratios comprise:
a first ratio (Ye, 0%, Fig. 6) where all available resources of the storage controller are allocated to performing the internal event (Ye, “For each block, the garbage threshold can be determined, which can be a measure of a percentage of invalid data of a block … It can also be that the system does not perfom a copy-forward operation on blocks below a certain garbage threshold” [0054-55]) – As taught in Ye, garbage collection is performed on blocks having a percentage of invalid data below the garbage threshold. Accordingly, a garbage threshold of 0% as depicted in Fig. 6 corresponds to a scenario where all blocks are selected for garbage collection (i.e., “all available resources” “allocated to performing the internal event”)--;
a second ratio (Ye, 35%, Fig. 6) where half of the available resources of the storage controller are allocated to performing the internal event and other half of the available resources of the storage controller are allocated to performing a command received from outside – As shown in Ye Fig. 6, a maximal garbage threshold of 70% is considered. Accordingly, a garbage threshold of 35% corresponds to a scenario where “half of the available resources” are allocated for garbage collection, whereas another half is allocated for host writes (e.g., blocks above 35% of invalid data are used for garbage collection whereas blocks below 35% of invalid data are not used for garbage collection and are therefore used for host commands--; and
a third ratio (Ye, 70%, Fig. 6) where a minimum-sized portion of the available resources of the storage controller is allocated to performing the internal event and other portion, except the minimum- sized portion, of the available resources of the storage controller is allocated to performing the command received from outside. – As shown in Ye Fig. 6, a maximal garbage threshold of 70% is considered, resulting in a scenario where the fewest possible blocks can be selected for garbage collection.
Regarding Claim 13,
The same motivation to combine provided in Claim 11 is equally applicable to Claim 13. The combined teachings of Jeon, Gordon, Ye, and Sinha disclose the following limitations:
The storage system of claim 12, wherein first multi-latency information generated based on the first ratio (Ye, 0%, Fig. 6) comprises a first latency and a first duration, (Ye, Fig. 6 // see also Claim 11 limitation mappings above) – As taught in Ye, reclamation throughput is calculated for each garbage threshold, including 0%. As previously discussed (see Claim 11 limitation mappings above), a storage controller calculates multi-latency information for each allocation ratio, and multi-latency information includes both a latency and a duration, respectively. Accordingly, the reclamation throughput values calculated for a garbage threshold of 0% correspond to “first multi-latency information” at a first ratio which includes “a first latency” and “a first duration”--,
second multi-latency information generated based on the second ratio (Ye, 35%, Fig. 6) comprises a second latency, which differs from the first latency, and a second duration, which differs from the first duration, -- As discussed above, multi-latency information is calculated for each respective allocation ratio. One of ordinary skill in the art would accordingly understand that multi-latency information calculated at a garbage threshold of 35% would be distinct from (i.e., “differs from”) multi-latency information calculated at a garbage threshold of 0%-- and
third multi-latency information (Ye, 35%, Fig. 6) generated based on the third ratio comprises a third latency, which differs from the first latency and the second latency, and a third duration, which differs from the first duration and the second duration. – One of ordinary skill in the art would understand that multi-latency information calculated at a garbage threshold of 70% would be distinct from the multi-latency information calculated at both 35% and at 0%.
Regarding Claim 14,
The same motivation to combine provided in Claim 11 is equally applicable to Claim 14. The combined teachings of Jeon, Gordon, Ye, and Sinha disclose the following limitations:
The storage system of claim 13, wherein the first latency (Gordon “The value of at least one run-time performance parameter may be, for example, … a calculated average write latency” [Col. 7, 10-15th lines]) is greater than the second latency, and the second latency is greater than the third latency (Ye, Fig. 6) – As shown in Ye Fig. 6, the reclamation throughput at a garbage threshold of 0% (analogous to “the first latency”) is greater than the reclamation throughput at 35%, which is greater than the reclamation throughput at 70%--,
and the first duration (Gordon “The value of at least one run-time performance parameter may be, for example, … a calculated tail write latency” [Col. 7, 10-15th lines]) is less than the second duration, and the second duration is less than the third duration. (Gordon, “Data collection module may subsequently calculated or produce from the accumulated information one or more run-time performance parameter values 481, including for example: a calculated average read latency … for at least one NVM device 31 … a calculated tail write latency (e.g., average latency of a top percentage of write access requests)” [Col. 29, 15-35th lines] // “embodiments may employ the GC mechanism to analyze one or more performance parameters … in real time or near-real time” [Col. 3, final ¶ - Col. 4, 1st ¶]) – As previously discussed (see Claim 13 limitation mappings above), examiner considers the respective durations included within the multi-latency information as the duration measurement made while the storage device is operating according to a respective allocation ratio. Accordingly, in this context, tail write latency measurements taken while a storage device is operating according to a 0%, a 35%, and a 70% garbage collection threshold correspond to “the first duration”, “the second duration”, and “the third duration”, respectively. Examiner notes, as discussed above, that selection of a ratio of host-to-drive can be based on average write latency, which is a separate parameter from the tail write latency. Thus, in this example, one of ordinary skill in the art would understand relative values of “latency” measurements made for each respective allocation ratio would be known because the latency measurement forms the basis of selection in Ye Fig. 6 (e.g., as shown in Fig. 6, higher reclamation throughputs times will correspond to lower garbage collection thresholds). In addition, one of ordinary skill in the art would further understand that in this same example, relative “duration” measurements made for each respective allocation ratio would not be known because the latency measurement (and not the duration measurement) forms the basis for selection Ye Fig. 6. As taught in Gordon Cols. 3/4, the one or more performance parameters are analyzed “in real time or near-real time”. One of ordinary skill in the art would accordingly understand that in an environment which operates over a large period of time, numerous “near-real time” measurements would be made; and further would understand that a portion of those measurements would include duration measurements with relative values as claimed above (i.e., “the first duration” is less than “the second duration” which is less than “the third duration”). Therefore, examiner considers the combined teachings of Jeon, Gordon, Ye, and Sinha as reading on the above limitation, under its Broadest Reasonable Interpretation (BRI).
Regarding Claim 19,
The same motivation to combine provided in Claim 11 is equally applicable to Claim 19. The combined teachings of Jeon, Gordon, Ye, and Sinha disclose the following limitations:
The storage system of claim 11, wherein the duration calculation circuit is configured to obtain an expected processing time (Gordon, “a calculated average write latency” [Col. 29]) corresponding to the internal event, based on an internal write speed (Ye, Reclamation Throughput, Fig. 6) and a size of internal write data (Ye, Total Garbage (GB), Fig. 6), needed to perform the internal event received from the internal event monitoring circuit (Jeon Fig. 3; see also Claim 11 limitation mappings above), and one of the plurality of allocation ratios (Ye, Fig. 6). – As shown in Ye Fig. 6, parameters including reclamation throughput (analogous to “an internal write speed”) and an amount to garbage to be reclaimed (analogous to “a size of internal write data” ”needed to perform the internal event”) are calculated for each garbage threshold. As previously discussed (see Claim 11 limitation mappings above) and as shown in Jeon Fig. 3, memory device state information is stored within the memory controller 200.
Regarding Claim 20,
The same motivation to combine provided in Claim 11 is equally applicable to Claim 20. The combined teachings of Jeon, Gordon, Ye, and Sinha disclose the following limitations:
The storage system of claim 11, wherein the internal event comprises
a read reclaim (Gordon, “an internal garbage-collection (GC) mechanism responsible for reclaiming invalid pages” [Col. 1, 50-60th lines]),
a wear leveling (Jeon, “a program operation for wear leveling” [0046]),
a garbage collection (Gordon, “an internal garbage-collection (GC) mechanism” [Col. 1, 50-60th lines]),
a bad block detection, or a block close – Examiner considers the aforementioned limitations as elements selected from a list of alternatives (see MPEP 2143.03)
Claim 15 is rejected under 35 U.S.C. 103 as being unpatentable over Jeon further in view of Gordon, Ye, Sinha, and Chunchu et al. (US 20230074643 A1)(cited by examiner in previous action)(hereafter referred to as Chunchu).
Regarding Claim 15,
The same motivation to combine provided in Claim 11 is equally applicable to Claim 15. The combined teachings of Jeon, Gordon, Ye, and Sinha disclose the following limitations:
The storage system of claim 12 (see Claim 12 limitation mappings above), wherein the host device is configured to select an allocation ratio for indicating resource allocation of the storage device from among the plurality of allocation ratios (see Claim 11 limitation mappings above), based on
…
a quality of service (QoS) value (Sinha, “a Quality of Service requirement” [0006]), and a size of an input/output bandwidth corresponding to the storage device (Sinha, “a current number of IOPS” [0007]) – As previously (see Claim 11 limitation mappings above) and as taught in Sinha, QoS requirements and I/O bandwidth inform how a host configures SSD operation.
The combined teachings of Jeon, Gordon, Ye, and Sinha do not explicitly disclose the following limitations:
select an allocation ratio for indicating resource allocation of the storage device … based on a length of a command queue, a depth of the command queue,
However, Chunchu discloses that a host device uses storage device parameters, including queue depth and queue size, in order to select an allocation of resources for the storage device.
Chunchu discloses the following limitations:
select an allocation ratio (“a data transfer rate” [0012]) for indicating resource allocation of the storage device (“when operating in a given mode, the host system may set the interface to one of a set of gears (e.g., gear rates) associated with the mode, where each gear may correspond to a different data transfer rate … The host system may adjust the gear of the interface in response to one or more commands from the host system satisfying one or more parameters of a set of parameters” [10-0012]) – As disclosed in ¶¶0010-12, a host device selects one of a plurality of data transfer rates (“gear rates”) to communicate with a storage device based on parameters of the storage device. Examiner accordingly considers selection of a gear rate for a storage device interface as analogous to the claimed concept of selection of an allocation ratio indicating resource allocation of a storage device-- … based on a length of a command queue (“a … quantity of commands” [0012]), a depth of the command queue (“a queue depth” [0012])(“If the host system determines that at least one or the parameters is satisfied (“e.g., the size of the command satisfies the threshold size, at least the threshold quantity of commands have at least the threshold size, the queue depth satisfies the threshold queue depth) the host system may switch the interface to a second gear (e.g., a second data transfer rate) and may communicate data with the memory system according to the second gear. Alternatively, if the host system determines that each of the parameters fails to be satisfied, the host system may maintain the interface in the first gear.” [0012]) – As taught in Chunchu ¶0012, storage device parameters including both a quantity of commands in a queue (i.e., “a length of a command queue”) and a queue depth (i.e., “a depth of the command queue”) informs the data transfer rate which the host device selects for communication with the storage device--,
Jeon, Gordon, Ye, Sinha and Chunchu are all considered analogous to the claimed invention because they all relate to the same field of resource allocation for performing host processes in storage devices based on real-time performance data collected about the storage devices. Therefore, it would have been obvious for someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Jeon, Gordon, Ye, and Sinha with the teachings of Chunchu and realize a method of selecting an allocation of resources for host processes based on a command queue length and depth. Doing so would enable a host device to better allocate data transfer rates for respective interfaces based on instantaneous power and duration information, resulting in reduced power consumption, as disclosed in Chunchu ¶¶0011-12: “In some cases, however, setting the gear based on command frequency may decrease data rates, increase power consumption, or have one or more other drawbacks associated with performance of the host system and the memory system … Thus, depending on differences in instantaneous power and durations for which various components are activated, among other factors, using a lower gear may in some cases actually lead to increased overall power consumption, along with longer data transfer times, compared to using a higher gear. Accordingly, in some cases, operating at an interface at a higher gear, but for a shorter period of time, may reduce power consumption (e.g., despite the higher gear corresponding to an increased instantaneous power consumption during a period of data transfer). Techniques, systems, and devices described herein for gear management for communication interfaces that enables improved gear selection schemes.” [0011-12].
Claims 16-18 are rejected under 35 U.S.C. 103 as being unpatentable over Jeon further in view of Gordon, Ye, Sinha, Chunchu and Tsai et al. (US 8751699 B1)(cited by examiner in previous action)(hereafter referred to as Tsai).
Regarding Claim 16,
The same motivation to combine provided in Claim 15 is equally applicable to Claim 16. The combined teachings of Jeon, Gordon, Ye, Sinha, and Chunchu disclose the following limitations:
The storage system of claim 15, (see Claim 15 limitation mappings above)
The combined teachings of Jeon, Gordon, Ye, Sinha, and Chunchu do not explicitly disclose the following limitations:
wherein the host device is configured to provide the storage device with mode information indicating the third ratio when the QoS value is greater than a first threshold value,
provide the storage device with mode information indicating the first ratio when the QoS value is less than a second threshold value, which is less than the first threshold value, and
provide the storage device with mode information indicating the second ratio when the QoS value is less than the first threshold value and greater than the second threshold value
However, Tsai discloses the following limitations:
wherein the host device is configured to provide the storage device with mode information indicating the third ratio (Tsai, 1% // LoU = 1, Table 3) when the QoS value is greater than a first threshold value (Tsai, “The LoU module 206 may generate the LoU indicator based on a comparison of the time recommended to complete the one or more background tasks with one or more predetermined thresholds. If the time to complete the pending and currently performed tasks … is lower than a first threshold, the LoU module 206 may generate an LoU indicator of value one or zero. If the time is between a first and second threshold, the LoU module may generate an LoU indicator value of one or two, and so on” [Col. 10, 45-60th lines]),
provide the storage device with mode information indicating the first ratio (Tsai, 15% // LoU = 5, Table 3) when the QoS value is less than a second threshold value, which is less than the first threshold value (Tsai, If the time is between a first and second threshold, the LoU module may generate an LoU indicator value of one or two, and so on” [Col. 10, 45-60th lines]), and
provide the storage device with mode information indicating the second ratio (Tsai, 10% // LoU = 4, Table 3) when the QoS value is less than the first threshold value and greater than the second threshold value – As taught in Tsai (see Table 3), an LoU indicator is directly proportional to a write latency and thus is inversely proportional to a quality of service. As detailed in Tsai Col. 10, 45-60th lines, “one or more predetermined thresholds” are used to determine which LoU indicator (e.g., 0-6; see Tsai Table 3) corresponds to which ratio of host-to-drive (e.g., 0%-20%). As detailed in Tsai, a 1% ratio of host-to-drive (i.e., the lowest non-zero ratio // “the third ratio”) is associated with an LoU indicator of 1 (i.e., the lowest non-zero LoU value); whereas a 15% ratio of host-to-drive (i.e., the higher ratio // “the first ratio”) is associated with an LoU indicator of 5 (i.e., a higher LoU value). One of ordinary skill in the art would accordingly understand, based on the inverse proportionality between LoU and quality of service, that a 1% ratio associated with the lowest LoU value would in effect be associated with a higher quality of service value; and further that a 15% ratio associated with a higher LoU value would in effect be associated with a lower quality of service value. One of ordinary skill in the art would similarly understand that a 10% ratio would be associated with an LoU indicator between the highest and lowest LoU indicators and thus would similarly be associated with a quality of service value between the highest and lowest quality of service values. Therefore, examiner considers the disclosed mechanism of using “one or more predetermined thresholds” to assign an LoU indicator, as disclosed in Tsai Fig. 3, step 316 // Table 3 // Col. 10, as reading on the aforementioned limitations.
Jeon, Gordon, Ye, Sinha, Chunchu, and Tsai are considered analogous to the claimed invention because they all relate to the same field of performing storage controller background tasks according to predetermined overprovision ratios. Therefore, it would have been obvious for someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Jeon, Gordon, Ye, Sinha, and Chunchu with the teachings of Tsai and realize a storage controller which determines one of a plurality of allocation ratios based on multi-latency information including an indicator representing a background task, expected processing times for performing the background task, and expected latency for performing the background task. Determining an allocation ratio based on multi-latency information would be expected to enable a host computer to schedule commands during times where background tasks are not being performed, resulting in more robust performance of devices which perform both host commands and background activities, as disclosed in Tsai Col. 2: “Maintenance, such as cache flush, adjacent track interference refresh, and disk scan for grown defects are considered essential for data integrity “In some embodiments, the LoU indicator may provide a guideline to the end-user or host computer for better utilization of drive idle times between user commands. With this information, the end-user or host computer can be better informed regarding the status of the drive. As a result, data storage devices may provide more robust performance.” [Col. 2, 10-20th lines].
Regarding Claim 17,
The same motivation to combine provided in Claim 16 is equally applicable to Claim 17. The combined teachings of Jeon, Gordon, Ye, Sinha, Chunchu, and Tsai disclose the following limitations:
The storage system of claim 15 (see Claim 15 limitation mappings above), wherein the host device is configured to provide the storage device with mode information indicating the first ratio (Tsai, 15%, Table 3) when the length of the command queue (Chunchu, “a … quantity of host commands” [0012]) is less than a first threshold length (Chunchu, “the host system may determine whether a threshold quantity of commands within a set of tracked commands have at least the threshold size” [0012]) (Tsai, “The LoU module 206 may generate the LoU indicator based on a comparison of the time recommended to complete the one or more background tasks with one or more predetermined thresholds. If the time to complete the pending and currently performed tasks … is lower than a first threshold, the LoU module 206 may generate an LoU indicator of value one or zero. If the time is between a first and second threshold, the LoU module may generate an LoU indicator value of one or two, and so on” [Col. 10, 45-60th lines] // Table 3 // “LoU indicators ranging from 0 to 7” [Col. 11, 60-65th lines] // Fig. 5) – As disclosed in Tsai Col. 10, “one or more predetermined thresholds” are used to determine which ratio of host-to-drive should be selected (e.g., during step 316 of Fig. 3). As previously discussed (see Claim 15 limitation mappings above) and as taught in Chunchu ¶0012, a host device compares a quantity of host commands to “a threshold quantity of commands” (i.e., a “threshold length”) in order to make resource allocation decisions. One of ordinary skill in the art would accordingly understand that the “one or more predetermined thresholds” used to select a ratio of host-to-drive can correspond to a threshold quantity of commands (i.e., one or more threshold lengths). As shown in Tsai Table 3, a ratio of host-to-drive of 15% (i.e., “the first ratio”) is associated with an LoU indicator of 5, which is less than the highest LoU indicator (e.g., 7; see Fig. 5 and Col.11). In this case, examiner considers the predetermined threshold separating LoU indicators 5 and 6 as “a first threshold length”. One of ordinary skill in the art would accordingly understand that a ratio of host-to-drive of 15% (i.e., corresponding to an LoU of 5) would be selected when the length of the command queue is less than the predetermined threshold separating LoU indicators 5 and 6.
Regarding Claim 18,
The same motivation to combine provided in Claim 16 is equally applicable to Claim 17. The combined teachings of Jeon, Gordon, Ye, Sinha, Chunchu, and Tsai disclose the following limitations:
The storage system of claim 17 (see Claim 17 limitation mappings above), wherein the host device is configured to provide the storage device with mode information indicating the third ratio (Tsai, 1%, Table 3) when the length of the command queue is less than a second threshold length (Tsai, Table 3 // Col. 10 // Fig. 5) – As previously discussed (see Claim 17 limitation mappings above) and as shown in Tsai Table 3 // Col. 10, each ratio of host-to-drive is associated with “one or more predetermined thresholds”. As further shown in Table 3, a ratio of host-to-drive of 1% (i.e., “the third ratio”) is associated with an LoU indicator of 1, which is less than an LoU indicator of 7 (see also Fig. 5). In this case, examiner considers the predetermined threshold separating LoU indicators of 6 and 7 as “a second threshold length”. One of ordinary skill in the art would accordingly understand that a ratio of host-to-drive of 1% (i.e., corresponding to an LoU of 1) would be selected when the length of the command queue is less than the predetermined threshold separating LoU indicators 6 and 7.
the second threshold length is greater than the first threshold length (Tsai, Fig. 5 // Table 3) – One of ordinary skill in the art would understand, in view of Tsai Fig. 5, that the predetermined threshold separating LoU indicators 6 and 7 (i.e., “the second threshold length”) would be a value which is greater than the predetermined threshold separating LoU indicators 5 and 6 (i.e., “the first threshold length”).
Response to Arguments
Applicant’s arguments with respect to claims 1-20 have been considered but are moot in view of the newly-identified Jeon, Ye, and Sinha references because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
With respect to applicant’s argument located within the 2nd paragraph of the 2nd page of remarks (numbered as page 10), continuing to the 3rd page of remarks (numbered as page 11), which recites:
“The instant specification explicitly describes the internal event as "the internal event can be an operation executed directly by the storage device 100, independent of any input from the host device 100." Specification at [0027]1. Additionally, the specification describes that the internal allocation resource represents "the allocation of resources to perform an event occurring in the storage device 100 and may be referred to in various terms such as an event allocation resource," and contrasts it with external allocation resource, which represents "allocation of resources to perform a request of the host device 200." See, Specification at [0028].
Thus, in the context of the specification, one of ordinary skill in the art would have understood "resources of the storage controller," as processing resources internal to the storage controller that are used by the storage controller to process internal events as well as commands requested by the host device.
The Examiner's interpretation of 'resources of the storage controller' as "encompassing any resource which is accessible by or otherwise is tangentially related to a storage controller" is not only inconsistent with the specification but also ignores the explicit recitation in the claim of the "resources of the storage controller," and seeks to unreasonably broaden the meaning of the term. The claim does not recite "resources available to the storage controller." Instead the claim clearly and unequivocally limits the resources to be "of the storage controller." Given the description in the specification and within the context of the claimed subject matter, expanding the meaning of resources to be anything related to the storage controller is an unreasonable broadening of the claim term that is inconsistent with the specification.”
Examiner has fully considered the aforementioned argument but does not find it persuasive. Applicant argues that examiner’s interpretation of the claimed concept of “resources of the storage controller” as encompassing any resource “related to” the storage controller is inconsistent with the specification and instead argues that the claimed “resources of the storage controller” should be limited to “processing resources internal to” the storage controller. Applicant points to Specification ¶0027 and the corresponding discussion of an “an internal allocation resource” vs. “an external allocation resource” to clarify the context surrounding the claimed term “resources of the storage controller”.
Examiner respectfully disagrees, and first notes that the claims as amended do not appear to impose any limits on 1) a type of resource (e.g., a “processing” resource); or 2) a location of a resource (e.g., “internal to” the storage controller) which is encompassed by the claimed “resources of the storage controller”. Examiner relies on the plain meaning of the term “resources of the storage controller” to establish the BRI of the claimed limitation. One of ordinary skill in the art would understand in view of the Specification that:
1) a storage controller would include various types of resources (e.g., such as a latency mapping table 430; see Fig. 4), some of which are not capable of processing (i.e., memory resources); and
2) a storage controller would have access to resources which are not necessarily tangible (e.g., time) and whose location therefore is indeterminate with respect to the storage controller (i.e., time is an intangible resource accessible to a storage controller which is neither internal nor external to the storage controller).
While the Specification ¶0027 distinguishes the concept of “an internal allocation resource” from “an external allocation resource”, the notion of internal vs. external discussed in ¶0027 appears related to the location of origin for a task processed using a resource (e.g., an internal task vs. an external host request) as opposed to the location of a resource (e.g., a resource internal to a storage controller vs. a resource external to a storage controller). Examiner has reviewed the Specification and cannot identify support for limiting the concept of “resources of the storage controller” only to internal processing resources of a storage controller.
Therefore, examiner determines that the BRI of the claimed concept of “resources of the storage controller” should not be narrowly limited only to “processing resources internal to” a storage controller as argued by applicant; and instead encompasses any resource related to a storage controller as established by the plain meaning of the claimed word “of.”
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to JULIAN SCOTT MENDEL whose telephone number is (703)756-1608. The examiner can normally be reached M-F 10am - 4pm EST.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Rocío del Mar Pérez-Vélez can be reached at 571-270-5935. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/J.S.M./Examiner, Art Unit 2133
/ROCIO DEL MAR PEREZ-VELEZ/Supervisory Patent Examiner, Art Unit 2133