DETAILED ACTION
Claims 1-20 are presented for examination.
This office action is in response to amendment of application on 9-JAN-2026.
Claims 1-20 remain pending.
Claims 1, 11, 20 are amended.
Amendments to the drawings and claim 20 have overcome each and every objection and rejection under 35 U.S.C. 112(b) presented in the previous office action mailed 9-SEPT-2025.
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 .
Response to Arguments
Applicant’s arguments, see pages 11-12, filed 9-JAN-2026, with respect to the objection to the drawings and the rejection of claim 20 under 35 U.S.C. 112(b) have been fully considered and are persuasive due to amendment. The objection to the drawings and rejection of claim 20 under 35 U.S.C. 112(b) have been withdrawn.
Applicant’s arguments, see pages 11-12, filed 9-JAN-2026, with respect to the rejection(s) of claim(s) 1-20 for double patenting have been fully considered and are persuasive due to amendments. Therefore, the rejection has been withdrawn. However, upon further consideration, a new ground(s) of rejection is made in view of the previously mapped reference patent and the previously applied prior art references.
Regarding applicant’s arguments that claim 4 of the reference patent does not teach the limitation “wherein the first application and the second application are configured to run concurrently”, which was newly amended into the independent claims 1, 11, and 20, the limitation was not previously claimed, and therefore will be addressed in the updated rejections below.
Applicant’s arguments, see pages 12-14, filed 9-JAN-2026, with respect to the rejection(s) of claim(s) 1-20 under 35 U.S.C. 103 have been fully considered and are persuasive due to amendments. Therefore, the rejection has been withdrawn. However, upon further consideration, a new ground(s) of rejection is made in view of the previously applied prior art references.
Regarding applicant’s arguments that the references do not teach the limitation “wherein the first application and the second application are configured to run concurrently”, which was newly amended into the independent claims 1, 11, and 20, the limitation was not previously claimed, and therefore will be addressed in the updated rejections below.
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.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Claim 1 is rejected on the ground of nonstatutory double patenting as being unpatentable over claim 4 (dependent on claims 3 and 1) of U.S. Patent No. 10489076 in view of. Although the claims at issue are not identical, they are not patentably distinct from each other because they are obvious over the reference application in view of KHANDUAL et al., U.S. Pub. No. 20200104264 (hereinafter “Khandual”).
The differences between the claims are highlighted below by italicizing minor wording differences, and bolding differences that will be addressed below.
Regarding claim 1:
Instant Application
U.S. Patent 10489076
(1) A method, comprising:
receiving, from a first application, a first request for memory;
providing, based on a first requirement of the first application, a first allocation of memory to the first application from a first group of memory having a first attribute;
receiving, from a second application, a second request for memory; and
providing, based on a second requirement of the second application, a second allocation of memory to the second application from a second group of memory having a second attribute
The second requirement being different from the first requirement
And the second attribute being different from the first attribute
Wherein the first application and the second application are configured to run concurrently
(1) A method for allocating portions of a flash memory in a solid state drive connected to a host, the flash memory comprising a plurality of physical flash memory blocks, the method comprising:
(1) receiving a request for an allocation of storage space from the first application; and
(1) allocating, to the first application, a first physical flash memory block that is suitable for meeting the first set of requirements.
(4) receiving, from a first application executing on the host, a first set of requirements; determining, for one or more physical flash memory blocks, whether it is suitable for meeting the first set of requirements;
(3) allocating, to the first application, the first physical flash memory block from the first list.
(4) receiving a request for an allocation of storage space from the second application;
(4) allocating, to the second application, a second physical flash memory block from the second list.
(4) receiving, from a second application executing on the host, a second set of requirements determining, for one or more physical flash memory blocks, whether it is suitable for meeting the second set of requirements;
(4) allocating, to the second application, a second physical flash memory block from the second list.
(4) a second set of requirements different from the first set of requirements
(3) forming a first list of physical flash memory blocks, the physical flash memory blocks in the first list being suitable for meeting the first set of requirements
(4) forming a second list of physical flash memory blocks, the physical flash memory blocks in the second list being suitable for meeting the second set of requirements
As shown in the mapping above, claim 4 of the reference patent includes all limitations of claim 1 of the instant application, except for the wherein the first application and the second application are configured to run concurrently.
However, Khandual teaches the first application and the second application are configured to run concurrently ([0027], Fig. 12, and [0109], Khandual teaches that data that populates system memory includes a computer’s operating system and application programs, and that the invention can be described in layers in which there are multiple workloads that exist in the layer at once. While not explicitly described as a first and second application running concurrently, in light of the description of Khandual which describes the application programs and workloads as pluralities that occupy the system at once, the claimed first application and the second application being configured to run concurrently is taught.)
The combination of the teachings would result in the obvious result of the instant application’s claim 1.
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.
Claims 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over
KHANDUAL et al., U.S. Pub. No. 20200104264 (hereinafter “Khandual”) in view of
Dubeyko et al., U.S. Patent No. 11061728 (hereinafter “Dubeyko”)
Regarding claim 1: Khandual teaches A method, comprising:
receiving, from a first application, a first request for memory; providing, based on a first requirement of the first application, a first allocation of memory to the first application from a first group of memory having a first attribute; ([0070], Khandual teaches receiving a request for memory needed by an application based on a set of attributes. Furthermore, in [0073], Khandual teaches that the request may be fulfilled by storing data for that application. Further, in [0058], Khandual teaches that a request may specify an attribute of a particular memory device, and that a particular memory device would thus be selected).
Although Khandual teaches that the invention applies to a variety of different types of applications with different requirements, which would make different types of requests to receive different kinds of memory, Khandual does not appear to explicitly disclose a second application making a second request, or the first application and the second application are configured to run concurrently in the same embodiment.
However, Dubeyko teaches a second application making a second request, and the first application and the second application are configured to run concurrently (Col. 5, lines 1-15, Dubeyko teaches that a host device can run a plurality of applications, where the applications may vary in number and type. Furthermore, as illustrated in Fig. 1 and Col. 6 lines 24-48, Dubeyko teaches that each of a plurality of applications may each have an address space, which is the range of discrete addresses that the operating system makes available to applications in response to requests for memory allocation. In other words, Dubeyko teaches that a plurality of applications each has its own separate address space, which would exist at once. Therefore, Dubeyko teaches a second application which makes a second request for memory, in a system where the first application and the second application run concurrently. Furthermore, in Col. 6 lines 54-65, Dubeyko teaches that the memory is allocated from multiple types of memories that can be allocated depending on the memory most suitable for handling the data that is stored at the address space.)
Khandual and Dubeyko are analogous art because they are from the same field of endeavor, managing memory allocations.
Therefore, it would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have combined the teachings of Khandual and Dubeyko to achieve the result of a method of receiving a first request from a first application for memory, then providing, based on a first requirement of the first application, a first allocation of memory to the first application from a first group of memory having a first attribute, and extending that to a second application which makes a second request for a memory allocation, with a second requirement that is different from the first requirement, and providing a memory with a second attribute different from the first attribute, where the two applications run concurrently on the system.
One of ordinary skill in the art would have been motivated to make this modification in order to facilitate efficient execution of associated applications which utilize a heterogenous memory as discussed in Dubeyko Col. 3 line 52 to Col. 4 line 6.
Regarding claim 2: Khandual teaches all limitations of claim 1, from which claim 2 depends.
Khandual further teaches the receiving, from the first application, of the first request for memory, comprises receiving the first request for memory, from the first application, by a first process; and the receiving, from the second application, of the second request for memory, comprises receiving the second request for memory, from the second application, by the first process ([0057-0060], Khandual teaches that one or more requests may be received and handled via the same process)
Regarding claim 3: Khandual teaches all limitations of claim 1, from which claim 3 depends.
Khandual further teaches the receiving, from the first application, of the first request for memory, comprises receiving the first request for memory, from the first application, by a first process; and the first process comprises a user space process ([0062], Khandual teaches that the requests may come from a user space, and therefore involve a user space process)
Regarding claim 4: Khandual teaches all limitations of claim 1, from which claim 4 depends.
Khandual further teaches the receiving, from the first application, of the first request for memory, comprises receiving the first request for memory, from the first application, by a first process; and the first process is a kernel space process. ([0062] and [0054], Khandual teaches that requests may come from a kernel, which would not involve a user space)
Regarding claim 5: Khandual teaches all limitations of claim 1, from which claim 5 depends.
Khandual further teaches the first group of memory comprises a first memory device; the second group of memory comprises a second memory device; and ([0033-0038], Khandual teaches that a memory sub-system may have multiple different kinds of memory operating together.)
Khandual further teaches determining, by a second process, from the first memory device, a first attribute; and determining, by the second process, from the second memory device, a second attribute. ([0045-0048], Khandual teaches a process by which the system defines a memory policy and corresponding memory attributes, which would apply to each memory of the multiple different kinds of memory of the heterogeneous system.)
Regarding claim 6: Khandual teaches all limitations of claim 1, from which claim 6 depends.
Khandual further teaches the receiving, from the first application, of the first request for memory, comprises receiving the first request for memory, from the first application, by a first process; ([0057-0060], Khandual teaches that a request for memory may be received and handled via a process)
Khandual further teaches the first group of memory comprises a first memory device; the second group of memory comprises a second memory device; and ([0033-0038], Khandual teaches that a memory sub-system may have multiple different kinds of memory operating together.)
Khandual further teaches determining, by a second process, from the first memory device, a first attribute; and ([0045-0048], Khandual teaches another process by which the system defines a memory policy and corresponding memory attributes of each memory device.)
Khandual further teaches sending, by the second process, to the first process, the first attribute ([0054-0055], Khandual teaches the previously defined memory policy being used in the allocation process to identify the memory nodes and their represented memory attributes)
Regarding claim 7: Khandual teaches all limitations of claim 1, from which claim 7 depends.
Khandual further teaches the receiving, from the first application, of the first request for memory, comprises receiving the first request for memory, from the first application, by a first process; ([0057-0060], Khandual teaches that a request for memory may be received and handled via a process)
Khandual further teaches the first group of memory comprises a first memory device; the second group of memory comprises a second memory device; and ([0033-0038], Khandual teaches that a memory sub-system may have multiple different kinds of memory operating together.)
Khandual further teaches determining, by a second process, from the first memory device, a first attribute; and ([0045-0048], Khandual teaches another process by which the system defines a memory policy and corresponding memory attributes of each memory device.)
Khandual further teaches sending, by the second process, to the first process, the first attribute ([0054-0055], Khandual teaches the previously defined memory policy being used in the allocation process to identify the memory nodes and their represented memory attributes)
Khandual further teaches the first process comprises a user space process; and ([0057], Khandual teaches that the allocation of the memory policies may involve action in the user space)
Khandual further teaches the second process comprises a user space process ([0046], Khandual teaches that the user space is used in the defining of the memory policies)
Regarding claim 8: Khandual teaches all limitations of claim 1, from which claim 8 depends.
Khandual further teaches the receiving, from the first application, of the first request for memory, comprises receiving the first request for memory, from the first application, by a first process; ([0057-0060], Khandual teaches that a request for memory may be received and handled via a process)
Khandual further teaches the first group of memory comprises a first memory device; the second group of memory comprises a second memory device; and ([0033-0038], Khandual teaches that a memory sub-system may have multiple different kinds of memory operating together.)
Khandual further teaches determining, by a second process, from the first memory device, a first attribute; and ([0045-0048], Khandual teaches another process by which the system defines a memory policy and corresponding memory attributes of each memory device.)
Khandual further teaches sending, by the second process, to the first process, the first attribute ([0054-0055], Khandual teaches the previously defined memory policy being used in the allocation process to identify the memory nodes and their represented memory attributes)
Khandual further teaches the first process comprises a kernel space process; and ([0056-0057], Khandual teaches that an allocation request can come from a kernel.)
Khandual further teaches the second process comprises a kernel space process. ([0054], Khandual teaches that the determining the right area for a kernel execution’s allocation involves a kernel command)
Regarding claim 9: Khandual teaches all limitations of claim 1, from which claim 9 depends.
Khandual further teaches the receiving, from the first application, of the first request for memory, comprises receiving the first request for memory, from the first application, by a first process; ([0057-0060], Khandual teaches that a request for memory may be received and handled via a process)
Khandual further teaches the first group of memory comprises a first memory device; the second group of memory comprises a second memory device; and ([0033-0038], Khandual teaches that a memory sub-system may have multiple different kinds of memory operating together.)
Khandual further teaches determining, by a second process, from the first memory device, a first attribute; and ([0045-0048], Khandual teaches another process by which the system defines a memory policy and corresponding memory attributes of each memory device.)
Khandual further teaches sending, by the second process, to the first process, the first attribute ([0054-0055], Khandual teaches the previously defined memory policy being used in the allocation process to identify the memory nodes and their represented memory attributes)
Khandual further teaches the first process comprises a user space process and a kernel space process; and ([0056-0057], Khandual teaches that an allocation request handling process can handle requests from both a user space and a kernel space.)
Khandual further teaches the second process comprises a user space process and a kernel space process. ([0048] and [0054], Khandual teaches that the determining the right area for a kernel execution’s allocation may be derived from either the user space or the kernel space)
Regarding claim 10: Khandual teaches all limitations of claim 1, from which claim 10 depends.
Khandual further teaches the first group of memory comprises a first memory device; the second group of memory comprises a second memory device; and ([0033-0038], Khandual teaches that a memory sub-system may have multiple different kinds of memory operating together.)
Khandual further teaches determining, from the first memory device, a first attribute; and determining, from the second memory device, a second attribute. ([0045-0048], Khandual teaches a process by which the system defines a memory policy and corresponding memory attributes, which would apply to each memory of the multiple different kinds of memory of the heterogeneous system.)
Regarding claim 11: Khandual teaches A system, comprising:
a processing circuit; and memory, operatively connected to the processing circuit and storing instructions that, when executed by the processing circuit, cause the system to perform a method ([0025-0027], and Fig. 1, Khandual teaches a processor element connected to a memory system. Furthermore, in [0021], Khandual teaches instructions that are provided to and executed via the processor to perform the functions of the disclosure)
receiving, from a first application, a first request for memory; providing, based on a first requirement of the first application, a first allocation of memory to the first application from a first group of memory having a first attribute; ([0070], Khandual teaches receiving a request for memory needed by an application based on a set of attributes. Furthermore, in [0073], Khandual teaches that the request may be fulfilled by storing data for that application. Further, in [0058], Khandual teaches that a request may specify an attribute of a particular memory device, and that a particular memory device would thus be selected).
Although Khandual teaches that the invention applies to a variety of different types of applications with different requirements, which would make different types of requests to receive different kinds of memory, Khandual does not appear to explicitly disclose a second application making a second request, or the first application and the second application are configured to run concurrently in the same embodiment.
However, Dubeyko teaches a second application making a second request, and the first application and the second application are configured to run concurrently (Col. 5, lines 1-15, Dubeyko teaches that a host device can run a plurality of applications, where the applications may vary in number and type. Furthermore, as illustrated in Fig. 1 and Col. 6 lines 24-48, Dubeyko teaches that each of a plurality of applications may each have an address space, which is the range of discrete addresses that the operating system makes available to applications in response to requests for memory allocation. In other words, Dubeyko teaches that a plurality of applications each has its own separate address space, which would exist at once. Therefore, Dubeyko teaches a second application which makes a second request for memory, in a system where the first application and the second application run concurrently. Furthermore, in Col. 6 lines 54-65, Dubeyko teaches that the memory is allocated from multiple types of memories that can be allocated depending on the memory most suitable for handling the data that is stored at the address space.)
Khandual and Dubeyko are analogous art because they are from the same field of endeavor, managing memory allocations.
Therefore, it would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have combined the teachings of Khandual and Dubeyko to achieve the result of a method of receiving a first request from a first application for memory, then providing, based on a first requirement of the first application, a first allocation of memory to the first application from a first group of memory having a first attribute, and extending that to a second application which makes a second request for a memory allocation, with a second requirement that is different from the first requirement, and providing a memory with a second attribute different from the first attribute, where the two applications run concurrently on the system.
One of ordinary skill in the art would have been motivated to make this modification in order to facilitate efficient execution of associated applications which utilize a heterogenous memory as discussed in Dubeyko Col. 3 line 52 to Col. 4 line 6.
Regarding claim 12: Khandual teaches all limitations of claim 11, from which claim 12 depends.
Khandual further teaches the receiving, from the first application, of the first request for memory, comprises receiving the first request for memory, from the first application, by a first process; and the receiving, from the second application, of the second request for memory, comprises receiving the second request for memory, from the second application, by the first process ([0057-0060], Khandual teaches that one or more requests may be received and handled via the same process)
Regarding claim 13: Khandual teaches all limitations of claim 11, from which claim 13 depends.
Khandual further teaches the receiving, from the first application, of the first request for memory, comprises receiving the first request for memory, from the first application, by a first process; and the first process comprises a user space process ([0062], Khandual teaches that the requests may come from a user space, and therefore involve a user space process)
Regarding claim 14: Khandual teaches all limitations of claim 11, from which claim 14 depends.
Khandual further teaches the receiving, from the first application, of the first request for memory, comprises receiving the first request for memory, from the first application, by a first process; and the first process is a kernel space process. ([0062] and [0054], Khandual teaches that requests may come from a kernel, which would not involve a user space)
Regarding claim 15: Khandual teaches all limitations of claim 11, from which claim 15 depends.
Khandual further teaches the first group of memory comprises a first memory device; the second group of memory comprises a second memory device; and ([0033-0038], Khandual teaches that a memory sub-system may have multiple different kinds of memory operating together.)
Khandual further teaches determining, by a second process, from the first memory device, a first attribute; and determining, by the second process, from the second memory device, a second attribute. ([0045-0048], Khandual teaches a process by which the system defines a memory policy and corresponding memory attributes, which would apply to each memory of the multiple different kinds of memory of the heterogeneous system.)
Regarding claim 16: Khandual teaches all limitations of claim 11, from which claim 16 depends.
Khandual further teaches the receiving, from the first application, of the first request for memory, comprises receiving the first request for memory, from the first application, by a first process; ([0057-0060], Khandual teaches that a request for memory may be received and handled via a process)
Khandual further teaches the first group of memory comprises a first memory device; the second group of memory comprises a second memory device; and ([0033-0038], Khandual teaches that a memory sub-system may have multiple different kinds of memory operating together.)
Khandual further teaches determining, by a second process, from the first memory device, a first attribute; and ([0045-0048], Khandual teaches another process by which the system defines a memory policy and corresponding memory attributes of each memory device.)
Khandual further teaches sending, by the second process, to the first process, the first attribute ([0054-0055], Khandual teaches the previously defined memory policy being used in the allocation process to identify the memory nodes and their represented memory attributes)
Regarding claim 17: Khandual teaches all limitations of claim 11, from which claim 17 depends.
Khandual further teaches the receiving, from the first application, of the first request for memory, comprises receiving the first request for memory, from the first application, by a first process; ([0057-0060], Khandual teaches that a request for memory may be received and handled via a process)
Khandual further teaches the first group of memory comprises a first memory device; the second group of memory comprises a second memory device; and ([0033-0038], Khandual teaches that a memory sub-system may have multiple different kinds of memory operating together.)
Khandual further teaches determining, by a second process, from the first memory device, a first attribute; and ([0045-0048], Khandual teaches another process by which the system defines a memory policy and corresponding memory attributes of each memory device.)
Khandual further teaches sending, by the second process, to the first process, the first attribute ([0054-0055], Khandual teaches the previously defined memory policy being used in the allocation process to identify the memory nodes and their represented memory attributes)
Khandual further teaches the first process comprises a user space process; and ([0057], Khandual teaches that the allocation of the memory policies may involve action in the user space)
Khandual further teaches the second process comprises a user space process ([0046], Khandual teaches that the user space is used in the defining of the memory policies)
Regarding claim 18: Khandual teaches all limitations of claim 11, from which claim 18 depends.
Khandual further teaches the receiving, from the first application, of the first request for memory, comprises receiving the first request for memory, from the first application, by a first process; ([0057-0060], Khandual teaches that a request for memory may be received and handled via a process)
Khandual further teaches the first group of memory comprises a first memory device; the second group of memory comprises a second memory device; and ([0033-0038], Khandual teaches that a memory sub-system may have multiple different kinds of memory operating together.)
Khandual further teaches determining, by a second process, from the first memory device, a first attribute; and ([0045-0048], Khandual teaches another process by which the system defines a memory policy and corresponding memory attributes of each memory device.)
Khandual further teaches sending, by the second process, to the first process, the first attribute ([0054-0055], Khandual teaches the previously defined memory policy being used in the allocation process to identify the memory nodes and their represented memory attributes)
Khandual further teaches the first process comprises a kernel space process; and ([0056-0057], Khandual teaches that an allocation request can come from a kernel.)
Khandual further teaches the second process comprises a kernel space process. ([0054], Khandual teaches that the determining the right area for a kernel execution’s allocation involves a kernel command)
Regarding claim 19: Khandual teaches all limitations of claim 11, from which claim 19 depends.
Khandual further teaches the receiving, from the first application, of the first request for memory, comprises receiving the first request for memory, from the first application, by a first process; ([0057-0060], Khandual teaches that a request for memory may be received and handled via a process)
Khandual further teaches the first group of memory comprises a first memory device; the second group of memory comprises a second memory device; and ([0033-0038], Khandual teaches that a memory sub-system may have multiple different kinds of memory operating together.)
Khandual further teaches determining, by a second process, from the first memory device, a first attribute; and ([0045-0048], Khandual teaches another process by which the system defines a memory policy and corresponding memory attributes of each memory device.)
Khandual further teaches sending, by the second process, to the first process, the first attribute ([0054-0055], Khandual teaches the previously defined memory policy being used in the allocation process to identify the memory nodes and their represented memory attributes)
Khandual further teaches the first process comprises a user space process and a kernel space process; and ([0056-0057], Khandual teaches that an allocation request handling process can handle requests from both a user space and a kernel space.)
Khandual further teaches the second process comprises a user space process and a kernel space process. ([0048] and [0054], Khandual teaches that the determining the right area for a kernel execution’s allocation may be derived from either the user space or the kernel space)
Regarding claim 20: Khandual teaches A system, comprising:
Means for processing; and memory, operatively connected to the means for processing and storing instructions that, when executed by the means for processing, cause the system to perform a method ([0025-0027], and Fig. 1, Khandual teaches a processor element connected to a memory system (The means for processing is interpreted to be any combination of hardware, firmware, and software that processes data or digital signals in light of [0063] of the instant specification). Furthermore, in [0021], Khandual teaches instructions that are provided to and executed via the processor to perform the functions of the disclosure)
receiving, from a first application, a first request for memory; providing, based on a first requirement of the first application, a first allocation of memory to the first application from a first group of memory having a first attribute; ([0070], Khandual teaches receiving a request for memory needed by an application based on a set of attributes. Furthermore, in [0073], Khandual teaches that the request may be fulfilled by storing data for that application. Further, in [0058], Khandual teaches that a request may specify an attribute of a particular memory device, and that a particular memory device would thus be selected).
Although Khandual teaches that the invention applies to a variety of different types of applications with different requirements, which would make different types of requests to receive different kinds of memory, Khandual does not appear to explicitly disclose a second application making a second request, or the first application and the second application are configured to run concurrently in the same embodiment.
However, Dubeyko teaches a second application making a second request, and the first application and the second application are configured to run concurrently (Col. 5, lines 1-15, Dubeyko teaches that a host device can run a plurality of applications, where the applications may vary in number and type. Furthermore, as illustrated in Fig. 1 and Col. 6 lines 24-48, Dubeyko teaches that each of a plurality of applications may each have an address space, which is the range of discrete addresses that the operating system makes available to applications in response to requests for memory allocation. In other words, Dubeyko teaches that a plurality of applications each has its own separate address space, which would exist at once. Therefore, Dubeyko teaches a second application which makes a second request for memory, in a system where the first application and the second application run concurrently. Furthermore, in Col. 6 lines 54-65, Dubeyko teaches that the memory is allocated from multiple types of memories that can be allocated depending on the memory most suitable for handling the data that is stored at the address space.)
Khandual and Dubeyko are analogous art because they are from the same field of endeavor, managing memory allocations.
Therefore, it would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to have combined the teachings of Khandual and Dubeyko to achieve the result of a method of receiving a first request from a first application for memory, then providing, based on a first requirement of the first application, a first allocation of memory to the first application from a first group of memory having a first attribute, and extending that to a second application which makes a second request for a memory allocation, with a second requirement that is different from the first requirement, and providing a memory with a second attribute different from the first attribute, where the two applications run concurrently on the system.
One of ordinary skill in the art would have been motivated to make this modification in order to facilitate efficient execution of associated applications which utilize a heterogenous memory as discussed in Dubeyko Col. 3 line 52 to Col. 4 line 6.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to KAITLYN HUNG PHAM whose telephone number is (571)272-6333. The examiner can normally be reached Mon-Thurs 8:00-6:00 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, Rocio Del Mar Perez-Velez 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.
/K.H.P./Examiner, Art Unit 2133
/KHOA D DOAN/Primary Examiner, Art Unit 2133