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 .
DETAILED ACTION
Claims 1-20 are currently pending and have been examined.
Claim Objections
Claim 10 is objected to because of the following informalities:
Re-claim 10, recites “the at least one the host system”, and it appears that it should be “the at least one host system”. Appropriate correction is required.
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 07/20/2023, 11/27/2024, 12/30/2024 and 01/29/2025 has been considered. The submission is in compliance with the provisions of 37 CFR 1.97. Form PTO-1449 is signed and attached hereto.
Claim Interpretation
The following is a quotation of 35 U.S.C. 112(f):
(f) Element in Claim for a Combination. – An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The following is a quotation of pre-AIA 35 U.S.C. 112, sixth paragraph:
An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The claims in this application are given their broadest reasonable interpretation using the plain meaning of the claim language in light of the specification as it would be understood by one of ordinary skill in the art. The broadest reasonable interpretation of a claim element (also commonly referred to as a claim limitation) is limited by the description in the specification when 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is invoked.
As explained in MPEP § 2181, subsection I, claim limitations that meet the following three-prong test will be interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph:
(A) the claim limitation uses the term “means” or “step” or a term used as a substitute for “means” that is a generic placeholder (also called a nonce term or a non-structural term having no specific structural meaning) for performing the claimed function;
(B) the term “means” or “step” or the generic placeholder is modified by functional language, typically, but not always linked by the transition word “for” (e.g., “means for”) or another linking word or phrase, such as “configured to” or “so that”; and
(C) the term “means” or “step” or the generic placeholder is not modified by sufficient structure, material, or acts for performing the claimed function.
Use of the word “means” (or “step”) in a claim with functional language creates a rebuttable presumption that the claim limitation is to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites sufficient structure, material, or acts to entirely perform the recited function.
Absence of the word “means” (or “step”) in a claim creates a rebuttable presumption that the claim limitation is not to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is not interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites function without reciting sufficient structure, material or acts to entirely perform the recited function.
Claim limitations in this application that use the word “means” (or “step”) are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action. Conversely, claim limitations in this application that do not use the word “means” (or “step”) are not being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action.
The following limitations (in claim 20) are identified as invoking interpretation under 35 U.S.C. 112(f): “means for determining a plurality of host connections … ““means for allocating, for at least one namespace …”, “means for determining, for a target namespace… “, “means for allocating, responsive to the filled mark …” Upon review of the specification, the following specification equivalent has been identified as being the structural equivalents to these means: Storage controller 102 (in Fig. 1) may include one or more central processing units (CPUs) or processors 104 for executing compute operations, storage management operations (par. 0043). Host interface 530 may include functions for receiving and processing host requests for establishing host connections with one or more namespaces stored in non-volatile memory 520 (par. 0060), A flexible capacity logic, for example, In initial allocation 702, the four capacity units of flexible capacity 718 and the six capacity units of flexible capacity 720 may be contributed to a floating capacity pool. Capacity from the namespaces may be allocated to a floating namespace pool (par. 0129). The flexible capacity threshold may be determined to be met [par. 0135]. capacity from the floating namespace pool may be allocated to the target namespace (par. 0136]). These statements provide that a controller with the claimed functionality or modules with the claimed functionality sufficiently read upon the limitation of the claim. Although these citations provide hardware (general purpose processors) they do not identify an algorithm that specifically programs the generic computer/processor to perform the claimed functions.
This application includes one or more claim limitations that do not use the word “means,” but are nonetheless being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, because the claim limitation(s) uses a generic placeholder that is coupled with functional language without reciting sufficient structure to perform the recited function and the generic placeholder is not preceded by a structural modifier. Such claim limitation(s) is/are: “namespace manager configured to:” in claim 1-10.
Because this/these claim limitation(s) is/are being interpreted under 35 U.S.C. 112(f), it/they is/are being interpreted to cover the corresponding structure described in the specification as performing the claimed function, and equivalents thereof.
If applicant does not intend to have this/these limitation(s) interpreted under 35 U.S.C. 112(f), applicant may: (1) amend the claim limitation(s) to avoid it/them being interpreted under 35 U.S.C. 112(f) (e.g., by reciting sufficient structure to perform the claimed function); or (2) present a sufficient showing that the claim limitation(s) recite(s) sufficient structure to perform the claimed function so as to avoid it/them being interpreted under 35 U.S.C. 112(f).
Claim Rejections - 35 USC § 112
The following is a quotation of the first paragraph of 35 U.S.C. 112(a):
(a) IN GENERAL.—The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor or joint inventor of carrying out the invention.
Claim 1-10 and 20 are rejected under 35 U.S.C. 112(a) or 35 U.S.C. 112 (pre-AlA), first paragraph, as failing to comply with the written description requirement.
The claims 1-10 and 20 contain subject matter which was not described in the specification in such a way as to reasonably convey to one skilled in the relevant art that the inventor or a joint inventor, or for pre-AlA the inventor(s), at the time the application was filed, had possession of the claimed invention. As described above in 112(f) interpretation for the limitation “namespace manager”, “means for determining a plurality of host connections … ““means for allocating, for at least one namespace …”, “means for determining, for a target namespace… “, “means for allocating, responsive to the filled mark …” the disclosure does not provide adequate structure to perform the claimed functions. The specification does not demonstrate that applicant has made an invention that achieves the claimed function because the invention is not described with sufficient detail such that one of ordinary skill in the art can reasonably conclude that the inventor had possession of the claimed invention. See MPEP § 2181(II)(B) “When a claim containing a computer-implemented 35 U.S.C. 112(f) claim limitation is found to be indefinite under 35 U.S.C. 112(b) for failure to disclose sufficient corresponding structure (e.g., the computer and the algorithm) in the specification that performs the entire claimed function, it will also lack written description under 35 U.S.C. 112(a)’.
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.
Claim 1-10 and 20 are rejected under 35 U.S.C. 112(b) as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor, or for pre-AIA the applicant regards as the invention.
As per claim 1-10 and 20, Claim limitation “namespace manager”, “means for determining a plurality of host connections … “, “means for allocating, for at least one namespace …”, “means for determining, for a target namespace… “ and “means for allocating, responsive to the filled mark …” invokes 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. However, the written description (par. 0055-0067) fails to disclose the corresponding structure, material, or acts for performing the entire claimed function and to clearly link the structure, material, or acts to the function. A review of the specification finds no support for the structure of the limitation that performs this function. Examiner notes that for computer-implemented technologies, structural support may be derived from a “computer” + “algorithm”, see MPEP § 2181, however, Examiner finds no support in the specification for a specific definite structure nor a general-purpose processor/computer programmed to carry out an algorithm corresponding the functions performed by the limitation which invokes 35 U.S.C. 112 (f),
Therefore, the claim is indefinite and is rejected under 35 U.S.C. 112(b) or pre-AIA 35 U.S.C. 112, second paragraph.
Applicant may:
(a) Amend the claim so that the claim limitation will no longer be interpreted as a limitation under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph;
(b) Amend the written description of the specification such that it expressly recites what structure, material, or acts perform the entire claimed function, without introducing any new matter (35 U.S.C. 132(a)); or
(c) Amend the written description of the specification such that it clearly links the structure, material, or acts disclosed therein to the function recited in the claim, without introducing any new matter (35 U.S.C. 132(a)).
If applicant is of the opinion that the written description of the specification already implicitly or inherently discloses the corresponding structure, material, or acts and clearly links them to the function so that one of ordinary skill in the art would recognize what structure, material, or acts perform the claimed function, applicant should clarify the record by either:
(a) Amending the written description of the specification such that it expressly recites the corresponding structure, material, or acts for performing the claimed function and clearly links or associates the structure, material, or acts to the claimed function, without introducing any new matter (35 U.S.C. 132(a)); or
(b) Stating on the record what the corresponding structure, material, or acts, which are implicitly or inherently set forth in the written description of the specification, perform the claimed function. For more information, see 37 CFR 1.75(d) and MPEP §§ 608.01(o) and 2181.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention recites a judicial exception, is directed to that judicial exception, an abstract idea, as it has not been integrated into practical application and the claims further do not recite significantly more than the judicial exception. Examiner has evaluated the claims under the framework provided in the 2019 Patent Eligibility Guidance published in the Federal Register 01/07/2019 and has provided such analysis below.
Step 1: Claims 1-10 are directed to a system and fall within the statutory category of machines; claims 11-19 are directed to methods and fall within the statutory category of processes; and claim 20 is directed to a data storage device and fall within the statutory category of machines. Therefore, “Are the claims to a process, machine, manufacture or composition of matter?” Yes.
In order to evaluate the Step 2A inquiry “Is the claim directed to a law of nature, a natural phenomenon or an abstract idea?” we must determine, at Step 2A Prong 1, whether the claim recites a law of nature, a natural phenomenon or an abstract idea and further whether the claim recites additional elements that integrate the judicial exception into a practical application.
Step 2A Prong 1:
Claims 1, 11 and 20: The limitations of “determine a plurality of host connections to a plurality of namespaces in the non-volatile storage medium”, “at least one namespace of the plurality of namespaces allocates a portion of the first allocated capacity to a floating namespace pool”, “determine, for a target namespace of the plurality of namespaces, whether a filled mark of the target namespace meets a flexible capacity threshold for the target namespace” and “allocate, responsive to the filled mark meeting the flexible capacity threshold, a capacity unit from the floating namespace pool to the target namespace to increase the first allocated capacity to a second allocated capacity”, and similar limitations of claims 11 and 14, which as drafted is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think, observe and evaluate available allocated capacity of the namespace and mentally assign/allocate portions of available capacity to a floating namespace pool. Further, a person can think, observe, judge and evaluate criteria in order to mentally determine whether usage/filled mark meets a threshold value for a target namespace. Further, a person can think, observe, evaluate available capacity units in a floating namespace pool and mentally assign/allocate additional capacity units to a target namespace.
Therefore, Yes, claims 1 and 11 and 20 recite judicial exceptions.
The claims have been identified to recite judicial exceptions, Step 2A Prong 2 will evaluate whether the claims are directed to the judicial exception.
Step 2A Prong 2:
Claims 1, 11 and 20: The judicial exception is not integrated into a practical application. In particular, the claim recites the following additional elements – “a data storage device”, “a non-volatile storage medium configured to store host data for at least one host system”, “a host interface configured to communicate with the at least one host system using a storage protocol” (claim 1), and “A data storage device”, “a processor”, “a memory”, “a non-volatile storage medium configured to store host data for at least one host system” and “a host interface configured to communicate with the at least one host system using a storage protocol” (claim 20), which are merely recitations of generic computing components and functions being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application. Further, the claim 1 recites the additional elements, wherein: each namespace of the plurality of namespaces has a first allocated capacity”, and similarly claims 11 and 20, which is merely a field of use/technological environment (MPEP § 2106.05(h)), which does not integrate a judicial exception into practical application.
Therefore, “Do the claims recite additional elements that integrate the judicial exception into a practical application? No, these additional elements do not integrate the abstract idea into a practical application and they do not impose any meaningful limits on practicing the abstract idea. Claims 1 and 14 are directed to an abstract idea.
After having evaluating the inquires set forth in Steps 2A Prong 1 and 2, it has been concluded that the claim 1 not only recites a judicial exception but that the claim is directed to the judicial exception as the judicial exception has not been integrated into practical application.
Step 2B:
Claims 1, 11 and 20: The claims do not include additional elements, alone or in combination, that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional elements amount to no more than generic computing components being used as a tool to apply the abstract idea and field of use/technological environment (MPEP § 2106.05(h)).
Therefore, “Do the claims recite additional elements that amount to significantly more than the judicial exception? No, these additional elements, alone or in combination, do not amount to significantly more than the judicial exception.
Having concluded analysis within the provided framework, Claims 1, 11 and 20 do not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claim 2, recites additional elements “wherein: the first allocated capacity of each namespace of the plurality of namespaces comprises: a guaranteed capacity value; and a flexible capacity value; and a sum of initial values for the guaranteed capacity value and the flexible capacity value equals the first allocated capacity” which is merely use/technological environment (MPEP § 2106.05(h)), integrate a judicial exception into practical application or amount to significantly more.
With regard to claim 3, recites additional abstract ideas “determine, based on the first allocated capacity: a default guaranteed capacity allocation; and a default flexible capacity allocation”; and “selectively determine, based on the default guaranteed capacity allocation and the default flexible capacity allocation, the initial values for the guaranteed capacity value and the flexible capacity value of the new namespace” which as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think and observe, judge and evaluate a first allocation capacity, and mentally determine a default guaranteed capacity allocation and a default flexible capacity allocation, and selectively determine initial values for corresponding a default guaranteed capacity allocation and a default flexible capacity allocation. Claim 3 further recites additional elements “receive a request for a new namespace in the plurality of namespaces”, which is merely a recitation of insignificant data gathering activity (see MPEP § 2106.05(g)) which does not integrate the judicial exception into practical application. Further, the insignificant extra-solution data gathering activity is Well-Understood, Routine, and Conventional (WURC), see MPEP § 2106.05(d)(II) “The courts have recognized the following computer functions as well understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. i. Receiving or transmitting data over a network, e.g., using the Internet to gather data”.
With regard to claim 4, recites additional abstract ideas “determine, from a custom guaranteed capacity attribute in the request: a custom guaranteed capacity allocation; and a custom flexible capacity allocation; and selectively determine, based on the custom guaranteed capacity allocation and the custom flexible capacity allocation, the initial values for the guaranteed capacity value and the flexible capacity value of the new namespace” which as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think and observe, judge and evaluate a first allocation capacity, and mentally determine a custom guaranteed capacity allocation and custom flexible capacity allocation and selectively determine initial values for both the custom guaranteed capacity allocation and custom flexible capacity allocation for a namespace. Claim 4 recites the additional elements “receive a request for a new namespace in the plurality of namespaces”, which is merely a recitation of insignificant data gathering activity (see MPEP § 2106.05(g)) which does not integrate the judicial exception into practical application. Further, the insignificant extra-solution data gathering activity is Well-Understood, Routine, and Conventional (WURC), see MPEP § 2106.05(d)(II) “The courts have recognized the following computer functions as well understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. i. Receiving or transmitting data over a network, e.g., using the Internet to gather data”
With regard to claim 5, recites additional abstract ideas “determine, from the request, a flexible capacity flag”, “selectively determine, based on the flexible capacity flag and for the new namespace: the guaranteed capacity value equals the first allocated capacity; and the flexible capacity value equals zero” which as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think and observe, judge and evaluate a request and mentally determine a capacity flag. Further, for example, a person can think and observe, judge and evaluate a flexible capacity flag received for a namespace and mentally determine a guaranteed capacity value that equals the first allocated capacity, and the flexible capacity value that equals zero. Claim 4 recites the additional elements “receive a request for a new namespace in the plurality of namespaces; which is merely a recitation of insignificant data gathering activity (see MPEP § 2106.05(g)) which does not integrate the judicial exception into practical application. Further, the insignificant extra-solution data gathering activity is Well-Understood, Routine, and Conventional (WURC), see MPEP § 2106.05(d)(II) “The courts have recognized the following computer functions as well understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. i. Receiving or transmitting data over a network, e.g., using the Internet to gather data”
With regard to claim 6, recites additional abstract ideas “wherein the namespace manager is further configured to: determine, for each namespace of the plurality of namespaces, whether that namespace is an operating type selected from: a fast filling namespace; or a slow filling namespace” and “determine, based on the operating type for each namespace of the plurality of namespaces, the initial values for the guaranteed capacity value and the flexible capacity value for that namespace” which as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think and observe, judge and evaluate each namespace and mentally determine whether the namespace is a fast filling type or slow filling type. Further, a person can think and observe, judge and evaluate for each namespace and mentally determine based on type of namespace initial values for both the guaranteed capacity allocation and flexible capacity allocation for the namespace. The claim does not recite additional elements that integrate a judicial exception into practical application or amount to significantly more.
With regard to claim 7, recites additional elements “update the guaranteed capacity value for the target namespace to the filled mark; and update the flexible capacity value for the target namespace to a difference between the second allocated capacity and the updated guaranteed capacity value” which is merely a recitation of insignificant data storing activity (see MPEP § 2106.05(g)) which does not integrate the judicial exception into practical application. Further, the insignificant extra-solution data storage activity is Well-Understood, Routine, and Conventional (WURC), see MPEP § 2106.05(d)(II) “The courts have recognized the following computer functions as well understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. iv. Storing and retrieving information in memory.
With regard to claim 8, recites additional abstract ideas “determine an aggregate capacity for the floating namespace pool based on the flexible capacity value of each namespace of the plurality of namespaces; and decrease, responsive to allocating the capacity unit from the floating namespace pool, the aggregate capacity by the capacity unit” which as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think and observe, judge and evaluate flexible capacity values of each namespaces and mentally determine an aggregate capacity for a floating namespace pool. Further, a person can think and observe and mentally decrease the aggregate capacity based on allocating a portion of the aggregate capacity from the flexible capacity pool to a namespace. The claim does not recite additional elements that integrate a judicial exception into practical application or amount to significantly more.
With regard to claim 9, recites additional elements “wherein the floating namespace pool includes the flexible capacity value of each namespace in the plurality of namespaces and at least one unallocated capacity value from: unallocated space from at least one non-volatile memory set defined using the storage protocol; or unallocated space from at least one endurance group defined using the storage protocol” which is merely a recitation of field of use/technological environment (MPEP § 2106.05(h)), integrate a judicial exception into practical application or amount to significantly more.
With regard to claim 10, recites additional abstract ideas “determine, for each namespace of the plurality of namespaces, the first allocated capacity; map, for each namespace of the plurality of namespaces, the first allocated capacity to allocated capacity in the host file system” which as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think and observe, judge and evaluate for each namespace and mentally determine a first allocated capacity. Further, a person can think and observe, judge and evaluate for each namespace and mentally map a first allocated capacity to allocated capacity in a file system. Claim 10, recites the additional limitations “a host processor; a host memory; a host file system; a storage interface configured to communicate with the data storage device using the storage protocol” which are merely recitations of generic computing components and functions being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application. Further, claim 10 recites the additional elements “receive a namespace capacity change notification for the target namespace, wherein the namespace manager is further configured to send the namespace capacity change notification responsive to allocating the capacity unit from the floating namespace pool; and update the first allocated capacity to the second allocated capacity in the host file system” which is merely a recitation of insignificant data gathering activity and data storage activity (see MPEP § 2106.05(g)) which does not integrate the judicial exception into practical application. Further, the insignificant extra-solution data gathering activity and data storage activity are Well-Understood, Routine, and Conventional (WURC), see MPEP § 2106.05(d)(II) “The courts have recognized the following computer functions as well understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. i. Receiving or transmitting data over a network, e.g., using the Internet to gather data” and iv. Storing and retrieving information in memory.
With regards to claims 12-19 recites subject matter similar to that of claims 2-8 and 10 directed to a method and is rejected under the same rationale.
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 of this title, 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.
Claims 1, 10-11 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Eun et al. (U.S. Pub. No. 20230409219 A1), in view of Frolikov et al. (U.S. Pub. No. 20220391091 A1).
As per claim 1, Eun teaches the invention substantially as claimed including a system, comprising:
a data storage device (Fig. 1 and par. 0051 storage device 120) comprising:
a non-volatile storage medium configured to store host data for at least one host system (par. 0051 The storage device 120 may include … a plurality of non-volatile memories (NVM) … The storage device 120 may store data or process data); and
a host interface configured to communicate with the at least one host system using a storage protocol (par. 0050 The host device 110 may communicate with the storage device 120 through various interfaces. As an example, the host device 110 may communicate with the storage device 120 through various interfaces, such as … Non-Volatile Memory Express (NVMe); and
a namespace manager (Fig. 1, Storage Controller 121) configured to:
determine a plurality of host connections to a plurality of namespaces in the non-volatile storage medium (par. 0102 Each of the plurality of applications APP1, APP2, . . . , APPj may generate an operation, a request [connection], and the like for using or accessing (for example, for writing/reading/erasing data, and the like) one of the plurality of namespaces; par . 0103 one namespace may be accessed by one application, or two or more namespaces may be simultaneously accessed by two or more applications), wherein:
each namespace of the plurality of namespaces has a first allocated capacity (par. 0056 Each of the plurality of namespaces may have a size [capacity] that can be expressed by the number of at least one logical block, and one logical block may include at least one memory block); and
at least one namespace [shared namespace] of the plurality of namespaces allocates a portion of the first allocated capacity to … [be used by namespaces NS1, NS2] (par. 0120 FIG. 10, some NS1 and NS2 of the plurality of namespaces NS1, NS2, and NSj may be allocated to the virtual machines VM1 and VM2, and another namespace NSj may be shared by the virtual machines (SHARED));
determine, for a target namespace of the plurality of namespaces, whether a filled mark of the target namespace meets a flexible capacity threshold for the target namespace (par. 0123 the resource manager 830 detects a namespace having insufficient capacity (S910). The resource manager 830 may detect a namespace having insufficient capacity, among the plurality of namespaces, by using the size, capacity, and usage rate of each of the namespaces. In some exemplary embodiments, the resource manager 830 may detect a namespace in which the usage rate of the predetermined namespace is greater than or equal to a predetermined rate (for example, 90%)); and
allocate, responsive to the filled mark meeting the flexible capacity threshold, a capacity unit from … [shared/second] namespace … to the target namespace to increase the first allocated capacity to a second allocated capacity (par. 0125 Next, the resource manager 830 controls a namespace having insufficient capacity to use a logical block of another namespace (S920). The resource manager 830 may control some of logical blocks of a namespace having sufficient capacity, among the plurality of namespaces, to be allocable to the namespace having insufficient capacity; par. 0063 If the capacity of any one namespace (for example, the first namespace) is less than a first threshold, the storage controller 121 may decrease the size of another namespace (for example, the second namespace) and increase the size of the first namespace so that logical blocks allocable to another namespace are allocated (or rented) to the first namespace; Fig. 11, for example may allocate a portion allocable logical blocks of shared namespace NSj to the namespace NS1).
Eun does not expressly describe: at least one namespace of the plurality of namespaces allocates a portion of the first allocated capacity to a floating namespace pool.
However, Frolikov teaches: at least one namespace of the plurality of namespaces allocates a portion of the first allocated capacity to a floating namespace pool (par. 0162 In some embodiments, remaining portion (1315) is added to a free block pool as a new partial block available for allocation to other name spaces; par. 0094 In FIG. 7, the portion (113) of the full block (127) ... is allocated for the namespace (111) … The remaining portion (115), or a portion of it, can be subsequently allocated to another namespace. It is noted, the remaining portion 115 in Fig. 7 may be allocated to a free block pool for use by other namespaces other than namespace 111).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the technique of adding a remaining portion of a block of a namespace toa free block pool of Frolikov with the method/system of Eun resulting in a system that provides for adding available blocks and/or remaining portions of blocks to a free block pool to be available for allocation other namespaces as in Frolikov. One of ordinary skill in the art would have been motivated to make this combination for the purpose of allowing the full utilization of the storage capacity of a storage device without sacrificing performance and consistency in address mapping (par. 0154).
As per claim 10, Eun further teaches: the at least one the host system (Host Device 110) comprising:
a host processor; a host memory; a host file system (Fig. 1, Host controller 111, Host memory 112; par. 0045 The host processor 111 may control the operation of the host device 110 and execute. for example, an Operating System (OS). The host memory 112 may store instructions and data executed and processed by the host processor 111. For example, the OS executed by the host processor 111 may include a file system for file management);
a storage interface configured to communicate with the data storage device using the storage protocol (par. 0050 The host device 110 may communicate with the storage device 120 through various interfaces … Non-Volatile Memory Express (NVMe)); and
a storage driver (par. 0045 a device driver for controlling peripheral devices including the storage device 120) configured to:
determine, for each namespace of the plurality of namespaces, the first allocated capacity (par. 0056 Each of the plurality of namespaces may have a size [first allocated capacity] that can be expressed by the number of at least one logical block), (par. 0070 transmit the information about the corrected size, capacity, and usage rate of the namespace).
wherein the namespace manager is further configured to send the namespace capacity change notification responsive to allocating the capacity unit from the floating namespace pool ((par. 0070 transmit the information about the corrected size, capacity, and usage rate of the namespace).
Frolikov further teaches: map, for each namespace of the plurality of namespaces, the first allocated capacity to allocated capacity in the host file system (par. 0216 each of the allocated full blocks is represented in the namespace map by an identification of a starting unit, and the allocated next block is represented in the namespace map by an identification of a unit allocated for the namespace and a chunk size); receive a namespace capacity change notification for the target namespace, … and update the first allocated capacity to the second allocated capacity in the host file system (par. 0069 The administrative manager (225) receives commands (e.g., 261, 263, 265) from the host (e.g., 101 in FIG. 1) to create (261), delete (263), or change (265) a namespace (e.g., 221 or 223). In response, the administrative manager (225) generates/updates a namespace map (255), such as the namespace map (273) to implement the mapping illustrated in FIG. 2 or 9. A namespace (e.g., 221 or 223) may be changed to expand or shrink its size (e.g., by allocating more blocks for the namespace, or returning some of its blocks to the pool of free blocks).
As per claim 11, it is a computer-implemented method having a similar limitations as claim 1. Thus, claim 11 is rejected for the same rationale as applied to claim 1.
As per claim 20, it is a data storage device having a similar limitations as claim 1. Thus, claim 20 is rejected for the same rationale as applied to claim 1. Eun further teaches: a processor; a memory; a non-volatile storage medium configured to store host data (par. 0034 The storage device (103) has a controller (107) that runs firmware (104) to perform operations responsive to the communications from the host (101); par. 0035 The storage device (103) has non-volatile storage media (109)).
Claims 2, 7-9, 12, 15 and 17-19 are rejected under 35 U.S.C. 103 as being unpatentable over Eun in view of Frolikov, and further in view of Riedel et al. (U.S. Pub. No. 20040228304 A1).
As per claim 2, Eun teaches: the first allocated capacity of each namespace of the plurality of namespaces (par. 0056 Each of the plurality of namespaces may have a size [capacity] that can be expressed by the number of at least one logical block, and one logical block may include at least one memory block) comprises:
Eun and Frolikov not expressly describe: a guaranteed capacity value; and a flexible capacity value; and a sum of initial values for the guaranteed capacity value and the flexible capacity value equals the first allocated capacity.
However, Riedel teaches: a guaranteed capacity value; and a flexible capacity value; and a sum of initial values for the guaranteed capacity value and the flexible capacity value equals the first allocated capacity (par. 0122 The sum of hard-reserved (HR) [guaranteed] and soft-reserved (SR) [flexible] resources describes the total current resource reservation [first allocated capacity] for a specific flow).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the technique of reserving resources for specific flows of Riedel with the method and system of Eun and Frolikov resulting in a system in which resources reserved/allocated to namespaces includes a hard-reserved portion and software reserved portion as in Riedel. One of ordinary skill in the art would have been motivated to make this combination for the purpose of achieving a global efficiency in resource utilization (par. 0015).
As per claim 7, Eun further teaches: wherein the namespace manager is further configured to, responsive to allocating the capacity unit from the floating namespace pool: update the guaranteed capacity value for the target namespace to the filled mark; and update the flexible capacity value for the target namespace to a difference between the second allocated capacity and the updated guaranteed capacity value (par. 0133 Since the allocable logical block NS1a is further included in the namespace NS1, the size of the namespace NS1 may be increased from NSZE_1 to NSZE . . . 1N, and the capacity of the namespace NS1 may also be increased from NCAP_1 to NCAP_1N. The first threshold of the namespace NS1 may also be changed from THRC_1 to THRC_1N and set. Then, since the usage rate of the namespace NS1 is less than the first threshold THRC_1N, the capacity of the namespace NS1 is not insufficient).
As per claim 8, Frolikov further teaches: wherein the namespace manager is further configured to: determine an aggregate capacity for the floating namespace pool based on the flexible capacity value of each namespace of the plurality of namespaces; and decrease, responsive to allocating the capacity unit from the floating namespace pool, the aggregate capacity by the capacity unit (par. 0127 If one or more free partial blocks (e.g., 161) that have a total size of available storage capacity equal to or greater than the difference (113) are found (207), the method further includes allocating (209) the difference (113) from the one or more free partial blocks (e.g., 161). If the available storage capacity is larger than the difference (113), the remaining unallocated one or more partial blocks are free and remain in the pool (160). If the available storage capacity is equal to the difference, the entirety of the one or more free partial blocks (e.g., 161) is allocated to the namespace (111) and thus removed from the free block pool (160)).
As per claim 9, Frolikov further teaches wherein the floating namespace pool includes the flexible capacity value of each namespace in the plurality of namespaces and at least one unallocated capacity value from: unallocated space from at least one non-volatile memory set defined using the storage protocol; or unallocated space from at least one endurance group defined using the storage protocol (par. 0110] In other implementations, the free block pool (160) tracks the available free full blocks (161, 163, . . . , 165), using a list of full block identifiers in a way similar to the list of full block identifiers used in the namespace map (135), where each of the full block identifiers is presented by a representative unit identifier; par. 0032 the storage device (103) communicate with each other using NVMe protocol; par. 0078 returning (351) the blocks previously allocated to the namespace to the free block list (275) as free blocks).
As per claim 12, it is a computer-implemented method having a similar limitations as claim 2. Thus, claim 12 is rejected for the same rationale as applied to claim 2.
As per claim 17, it is a computer-implemented method having a similar limitations as claim 7. Thus, claim 17 is rejected for the same rationale as applied to claim 7.
As per claim 18, it is a computer-implemented method having a similar limitations as claim 8. Thus, claim 18 is rejected for the same rationale as applied to claim 8.
As per claim 19, Eun further teaches: determining, by the at least one host system and for each namespace of the plurality of namespaces, the first allocated capacity (par. 0056 Each of the plurality of namespaces may have a size [capacity] that can be expressed by the number of at least one logical block, and one logical block may include at least one memory block); sending, to the at least one host system, a namespace capacity change notification responsive to allocating the capacity unit from the floating namespace pool (par. 0070 transmit the information about the corrected size, capacity, and usage rate of the namespace). Frolikov further teaches: mapping, for each namespace of the plurality of namespaces, the first allocated capacity to allocated capacity in a host file system of the at least one host system (par. 0216 each of the allocated full blocks is represented in the namespace map by an identification of a starting unit, and the allocated next block is represented in the namespace map by an identification of a unit allocated for the namespace and a chunk size); receiving, by the at least one host system, the namespace capacity change notification for the target namespace; and updating, responsive to the namespace capacity change notification, the first allocated capacity to the second allocated capacity in the host file system (par. 0069 The administrative manager (225) receives commands (e.g., 261, 263, 265) from the host (e.g., 101 in FIG. 1) to create (261), delete (263), or change (265) a namespace (e.g., 221 or 223). In response, the administrative manager (225) generates/updates a namespace map (255), such as the namespace map (273) to implement the mapping illustrated in FIG. 2 or 9. A namespace (e.g., 221 or 223) may be changed to expand or shrink its size (e.g., by allocating more blocks for the namespace, or returning some of its blocks to the pool of free blocks).
Claims 3-4 and 13-14 are rejected under 35 U.S.C. 103 as being unpatentable over Eun in view of Frolikov and Riedel, and further in view of Scotto et al. (U.S. Pub. No. 20150254734 A1).
As per claim 3, Eun further teaches: wherein the namespace manager is further configured to: receive a request for a new namespace in the plurality of namespaces; determine, based on the first allocated capacity: a … capacity allocation … ; and selectively determine … the initial values for the … capacity value of the new namespace (par. 00102 Each of the plurality of applications … may generate an operation, a request, and the like for using … one of the plurality of namespaces; par. 0092 FIG. 3 illustrates an example of generating and setting a plurality of namespaces NS1, NS2, . . . , NSj; par. 0095 The size of the plurality of namespaces … may be determined by the number of logical blocks LB included in each of the plurality of namespaces … For example, the plurality of namespaces … may include the same [default] number of logical blocks or may include different numbers of logical blocks; Fig. 11, for instance describes Namespace NS2 having a corresponding size NSZE2 [equiv. to first allocated capacity], a namespace capacity NCAP2 [equiv. to flexible capacity], and a namespace utilization NUSE2 [equiv. to guaranteed capacity]). Riedel further teaches: determine … guaranteed capacity allocation; and … flexible capacity allocation; the initial values for the guaranteed capacity value and the flexible capacity value of the new namespace (par. 0122 The sum of hard-reserved (HR) [guaranteed] and soft-reserved (SR) [flexible] resources describes the total current resource reservation [first allocated capacity] for a specific flow; par. 0053 must be able to process QoS requests, e.g. soft or hard resource reservation requests, generated by the QoS model)
Eun, Frolikov and Riedel do not expressly describe: a default guaranteed capacity allocation, a default flexible capacity allocation.
However, Scotto teaches: a default guaranteed capacity allocation, a default flexible capacity allocation (par. 0010 The block allocation may include a default allocation and/or a custom allocation).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the technique dynamically generating a default allocation and/or a custom allocation of Scotto with the method/system of Eun, Frolikov and Riedel resulting in a system that provides for dynamically determine and set initial guaranteed allocation values and/or flexible allocation values based on default allocations. One of ordinary skill in the art would have been motivated to make this combination for the purpose of maintaining tighter control over the distribution of the media (par. 0134). Further, it would provide for preventing a applications/namespaces from monopolizing storage space and ensuring that namespaces have the necessary capacity to operate.
As per claim 4, Eun further teaches: receive a request for a new namespace in the plurality of namespaces; determine, from a … guaranteed capacity attribute in the request: a … guaranteed capacity allocation; and a … flexible capacity allocation; and selectively determine, based on the … guaranteed capacity allocation and the … flexible capacity allocation, the initial values for the guaranteed capacity value and the flexible capacity value of the new namespace (par. 00102 Each of the plurality of applications … may generate an operation, a request, and the like for using … one of the plurality of namespaces; par. 0092 FIG. 3 illustrates an example of generating and setting a plurality of namespaces NS1, NS2, . . . , NSj; par. 0095 The size of the plurality of namespaces … may be determined by the number of logical blocks LB included in each of the plurality of namespaces … For example, the plurality of namespaces … may include the same number of logical blocks or may include different [custom] numbers of logical blocks; Fig. 11, for example describes Namespace NS2 having a corresponding size NSZE2 [equiv. to first allocated capacity], a namespace capacity NCAP2 [equiv. to flexible capacity], and a namespace utilization NUSE2 [equiv. to guaranteed capacity]). Scotto further teaches: a custom guaranteed capacity allocation, a custom flexible capacity allocation (par. 0010 The block allocation may include a default allocation and/or a custom allocation)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the technique dynamically generating a r a custom allocation of Scotto with the method/system of Eun, Frolikov and Riedel resulting in a system that provides for dynamically determine and set initial guaranteed allocation values and/or flexible allocation values based on default allocations. One of ordinary skill in the art would have been motivated to make this combination for the purpose of maintaining tighter control over the distribution of the media (par. 0134). Further, it would provide for preventing a applications/namespaces from monopolizing storage space and ensuring that namespaces have the necessary capacity to operate.
As per claim 13, it is a computer-implemented method having a similar limitations as claim 3. Thus, claim 13 is rejected for the same rationale as applied to claim 3.
As per claim 14, it is a computer-implemented method having a similar limitations as claim 4. Thus, claim 14 is rejected for the same rationale as applied to claim 4.
Claims 5 and 15 are rejected under 35 U.S.C. 103 as being unpatentable over Eun in view of Frolikov and Riedel, and further in view of Pawar et al. (U.S. Pub. No. 20180295066 A1).
As per claim 5, Eun teaches: receive a request for a new namespace in the plurality of namespaces (par. 0119 The resource manager 830 may receive information about the namespace data structure including the size, capacity; par. 0123 the resource manager 830 may detect a namespace in which the usage rate of the predetermined namespace is greater than or equal to a predetermined rate (for example, 90%); par. 0039 one namespace may be generated and set for one non-volatile memory. For example, the namespace NS1 may be generated and set for the entire area of the non-volatile memory NVM1); Riedel further teaches: guaranteed capacity value …. and the flexible capacity value (par. 0053 must be able to process QoS requests, e.g. soft or hard resource reservation requests, generated by the QoS model; par. 0122 The sum of hard-reserved (HR) [guaranteed] and soft-reserved (SR) [flexible] resources describes the total current resource reservation [first allocated capacity] for a specific flow).
Eun and Frolikov and Riedel do not expressly disclose: a flexible capacity flag, selectively determine, based on the flexible capacity flag, for the new namespace: guaranteed capacity value equals the first allocated capacity; and the flexible capacity value equals zero.
However, Pawar teaches: a flexible capacity flag, selectively determine, based on the flexible capacity flag, for the new namespace: guaranteed capacity value equals the first allocated capacity; and the flexible capacity value equals zero (par. 0068 Shared/Exclusive Access Flag—This flag may indicate whether the application is to have exclusive or shared access to the node; par. 0051 Private - sharing is not allowed. In other words, the owner/vendor application reserves exclusive access to this resource. [0052] Shared - sharing of this resource is allowed with properly authorized applications It is noted, that when the flag indicates exclusive, an application is guaranteed the entire capacity, and when the flag indicates shared, the applications may share an unused/flexible portion of the capacity with other applications).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the technique of determining based on a shared/exclusive flag whether an application is to have shared or exclusive access to capacity of a device of Pawar with the method and system of Eun, Frolikov and Riedel resulting in a system in which it is selectively determined based on an exclusive/shared flag whether a namespace is to have an exclusive access to a capacity of a device as in Riedel. One of ordinary skill in the art would have been motivated to make this combination for the purpose allowing a computing node to provide access to the application such that a given application has exclusive access to a node/capacity (par. 0015).
As per claim 15, it is a computer-implemented method having a similar limitations as claim 5. Thus, claim 15 is rejected for the same rationale as applied to claim 5.
Claims 6 and 16 are rejected under 35 U.S.C. 103 as being unpatentable over Eun et in view of Frolikov and Riedel, and further in view of Lee et al. (U.S. Pub. No. 20230342028 A1).
As per claim 6, Eun further teaches: wherein the namespace manager is further configured to: determine … for each namespace of the plurality of namespaces, the initial values for the guaranteed capacity value and the flexible capacity value for that namespace (par. 0095 The size of the plurality of namespaces … may be determined by the number of logical blocks LB included in each of the plurality of namespaces … For example, the plurality of namespaces … may include the same number of logical blocks or may include different numbers of logical blocks; Fig. 11, for instance describes Namespace NS2 having a corresponding size NSZE2 [equiv. to allocated capacity], a namespace capacity NCAP2 [equiv. to flexible capacity], and a namespace utilization NUSE2 [equiv. to guaranteed capacity]).
Eun and Frolikov and Riedel do not expressly describe: determine, for each namespace of the plurality of namespaces, whether that namespace is an operating type selected from: a fast filling namespace; or a slow filling namespace.
However, Lee teaches: determine, for each namespace of the plurality of namespaces, whether that namespace is an operating type selected from: a fast filling namespace; or a slow filling namespace (par. 0048 determining the one or more hints for the zone [namespace] based on identifying one or more attributes of the dataset; par. 0053 when the one or more hints for the zone include a first hint indicating that the zone is part of a group of a plurality of zones [which maybe regular/slow filling type], allocating to the zone a first portion of the physical data storage resources; par. 0054 in some embodiments the hint(s) include a second hint indicating that the zone [namespace] is to be fast-filled. Thus, in some embodiments, act 404 comprises the one or more hints including a second hint indicating that the zone is to be fast-filled [fast filling type], the second hint structured to instruct the ZNS storage device to bypass a staging area when writing to the zone).
It would have been obvious to one of ordinary skill before the effective filing date of the claimed invention to combine the technique of determining a type of a namespace zone based on one or more hints of Lee with the system/method of Eun, Frolikov and Riedel resulting in a system/method that provides for determining whether a namespace zone is a fast filling type or other type as in Lee in order to identify namespaces that can/cannot serve as sources that can provide flexible capacity to a free block pool. One of ordinary skill in the art would have been motivate to make this combination for the purpose of improving write performance by reducing a number of write operations needed to perform a write (i.e., by bypassing the staging area), reducing use of staging area storage resources, and can increase an operational lifespan of the staging area storage if the staging area storage has limited endurance (par. 0009).
As per claim 16, it is a computer-implemented method having a similar limitations as claim 6. Thus, claim 16 is rejected for the same rationale as applied to claim 6. Eun further teaches: determining … the flexible capacity threshold for that namespace (par. 0124 Referring to FIG. 11, the resource manager 830 may set first threshold THRC_1, THRC_2, and THRC_j of the plurality of namespaces NS1, NS2, and NSj. The first thresholds THRC_1, THRC_2, and THRC_j may be set to predetermined ratios of the sizes NSZE_1, NSZE_2, and NSZE_j of the plurality of namespaces NS1, NS2, and NSj). Lee further teaches: determining … operating type for each namespace of the plurality of namespaces (par. 0053 when the one or more hints for the zone include a first hint indicating that the zone is part of a group of a plurality of zones [which maybe regular/slow filling type], allocating to the zone a first portion of the physical data storage resources; par. 0054 in some embodiments the hint(s) include a second hint indicating that the zone [namespace] is to be fast-filled).
It would have been obvious to one of ordinary skill before the effective filing date of the claimed invention to combine the technique of determining a type of a namespace zone based on one or more hints of Lee with the system/method of determining/setting thresholds for namespaces of Eun, and the method of Frolikov and Riedel resulting in a system/method that provides for determining a flexible capacity threshold for namespaces based on operating types described in Lee. One of ordinary skill in the art would have been motivate to make this combination for the purpose of improving write performance by reducing a number of write operations needed to perform a write (i.e., by bypassing the staging area), reducing use of staging area storage resources, and can increase an operational lifespan of the staging area storage if the staging area storage has limited endurance (par. 0009).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Willy W. Huaracha whose telephone number is (571)270-5510. The examiner can normally be reached on M-F 8:30-5:00pm.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Bradley Teets can be reached on (571) 272-3338. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/WH/
Examiner, Art Unit 2195
/BRADLEY A TEETS/ Supervisory Patent Examiner, Art Unit 2197