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
1. This action is responsive to: an original application filed on 9 April 2026.
2. Claims 9, 17, 19 and have been amended.
3. Claims 21-39 have been newly added.
4. Claims 1-39 are currently pending and rejected.
Responses to the Argument
5. The applicant’s arguments filed on 9 April 2026 are moot in view of new ground of rejection rendered.
Claim Rejections - 35 USC § 101
6. 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.
Claim 39 is rejected under 35 U.S.C. 101 because the claimed invention is directed to a judicial exception (i.e. an abstract idea) without significantly more.
Claim 39 recites “A computer-readable medium” interpreted as broadly as their terms reasonably allow. See In re Zletz, 893 F.2d 319 (Fed. Cir. 1989). The broadest reasonable interpretation of a claim drawn to a computer readable medium (also called machine readable medium and other such variations) typically covers forms of non-transitory tangible media and transitory propagating signals per se in view of the ordinary and customary meaning of computer readable media, particularly when the specification is silent (See MPEP 2111.01). When the broadest reasonable interpretation of a claim covers a signal per se, the claim must be rejected under 35 U.S.C. §101 as covering non-statutory subject matter. See In re Nuijten, 500 F.3d 1346, 1356-57 (Fed. Cir. 2007) (transitory embodiments are not directed to statutory subject matter) and Interim Examination Instructions for Evaluating Subject Matter Eligibility Under 35 U.S.C. § 101, Aug. 24, 2009; p. 2.
A claim drawn to such a computer readable medium that covers both transitory and non-transitory embodiments may be amended to narrow the claim to cover only statutory embodiments to avoid a rejection under 35 U.S.C. § 101 by adding the limitation “non-transitory” or “device” to the claim. Cf. Animals – Patentability, 1077 Off. Gaz. Pat. Office 24 (April 21, 1987.
Therefore, claims 1, 15 and 29 are directed to non-statutory subject matter. The dependent claims fail to obviate such rejections and are themselves rejected under this title for they are also abstract ideas and fall outside the plainly expressed scope of this title.
Please see the Interim Guidance on Patent Subject Matter Eligibility (December 2014) - http://www.gpo.gov/fdsys/pkg/FR-2014-12-16/pdf/2014-29414.pdf.
Claim Rejections - 35 USC § 103
7. 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-39 are rejected under 35 U.S.C §103 as being unpatentable over Milburn et al. (US Publication No. 20210406028), hereinafter Milburn. and in view of DeHon et al. (US Publication No. 20170177368), hereinafter DeHon.
Regarding claim 1:
A method comprising acts of: in response to receiving a compartment update request, determining, by compartment check hardware, a target compartment of a compartment transition triggering the compartment update request (Milburn, ¶66-67, ¶144).
Milburn does not explicitly suggest, and loading, by the compartment check hardware, a compartment configuration corresponding to the target compartment, wherein the compartment configuration indicates at least one address range associated with the target compartment; however, in a same field of endeavor DeHon discloses this limitation (DeHon, ¶152, ¶389. ¶536, ¶165).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to include the method of component update of Milburn with the configuration and loading mechanism disclosed in DeHon to provide protection against simple code injection attacks stated by DeHon at ¶82.
Regarding claim 2:
wherein: the target compartment of the compartment transition is determined at least in part by: determining, based on the compartment update request, a local identifier of the target compartment relative to a source compartment of the compartment transition; and using a compartment configuration corresponding to the source compartment to map the local identifier of the target compartment to a global identifier of the target compartment, wherein: the compartment configuration corresponding to the target compartment is loaded based on the global identifier of the target compartment (Milburn, ¶45, ¶86, Abstract).
Regarding claim 3:
wherein: the global identifier of the target compartment comprises a memory address at which the compartment configuration corresponding to the target compartment is stored (Milburn, ¶12).
Regarding claim 4:
wherein: the at least one address range associated with the target compartment comprises at least one address range that an instruction executing in the target compartment is allowed to access (Milburn, ¶15-18).
Regarding claim 5:
wherein: the compartment transition comprises a branch instruction; the target compartment of the compartment transition is determined at least in part by: determining, based on the compartment update request, a target address of the branch instruction; and matching the target address of the branch instruction to the target compartment (Milburn, ¶84-85, ¶22).
Regarding claim 6:
wherein: the compartment update request is received from tag processing hardware configured to check instructions executed by a host system; and the method further comprises acts of, by the tag processing hardware: detecting the compartment transition, at least in part by determining that an instruction executed by the host system represents a transfer of control from a source compartment to the target compartment; and issuing the compartment update request in response to detecting the compartment transition (Milburn, ¶76, ¶123).
Regarding claim 7:
wherein: the tag processing hardware determines that the instruction represents a transfer of control at least in part by determining that the instruction matches at least one rule of a compartmentalization policy (Milburn, ¶3).
Regarding claim 8:
wherein: the compartmentalization policy comprises a compartment entry rule and/or a compartment exit rule (Milburn, ¶107).
Regarding claim 9:
wherein: the method further comprises an act of constructing, by the tag processing hardware, an input pattern based on metadata selected from a group consisting of: an instruction type of the instruction; and metadata associated with the instruction; the input pattern is used to determine whether the instruction matches at least one rule of the compartmentalization policy (Milburn, ¶114, 112).
Regarding claim 10:
wherein: the method further comprises an act of determining whether the compartment transition is allowed; and the act of loading the compartment configuration corresponding to the target compartment is performed in response to determining that the compartment transition is allowed (Milburn, Abstract).
Regarding claim 11:
wherein: the act of determining whether the compartment transition is allowed comprises determining whether a compartment transition graph includes a transition from a source compartment of the compartment transition to the target compartment of the compartment transition (Milburn, ¶13-15).
Regarding claim 12:
wherein: the compartment configuration corresponding to the target compartment is loaded prior to receiving the compartment update request; and the method further comprises acts of: predicting, by the compartment check hardware, one or more compartment configurations that are likely to be encountered; loading, by the compartment check hardware, the one or more predicted compartment configurations; and determining, by the compartment check hardware, whether any of the one or more predicted compartment configurations is associated with the target compartment of the compartment transition triggering the compartment update request (Milburn, ¶141-144).
Regarding claim 13:
further comprising acts of: in response to receiving a compartment check request, determining, by the compartment check hardware, a memory address associated with an instruction triggering the compartment check request; determining, by the compartment check hardware, based on a current compartment configuration, one or more address ranges; and checking the memory address associated with the instruction triggering the compartment check request against the one or more address ranges determined based on the current compartment configuration (Milburn, ¶47, 12-13).
Regarding claim 14:
wherein: the memory address associated with the instruction comprises a memory address from which the instruction is fetched; and the memory address from which the instruction is fetched is checked against a code address range in the current compartment configuration (Milburn, ¶47, ¶74).
Regarding claim 15:
wherein: the memory address associated with the instruction comprises a memory address that the instruction is attempting to access; and the memory address that the instruction is attempting to access is checked against a data address range in the current compartment configuration (Milburn, ¶147, ¶150).
Regarding claim 16:
wherein: the compartment update request comprises a first compartment update request; and the method further comprises acts of: determining, based on a second compartment update request, information relating to an address range that is dynamically allocated for a compartment to which the second compartment update request pertains; and using the information relating to the address range to update a compartment configuration for the compartment to which the second compartment update request pertains (Milburn, ¶55, 56).
Regarding claim 17:
wherein: the information relating to the address range comprises a start address, an end address, and/or a size of the address range (Milburn, ¶17).
Regarding claim 18:
wherein: the second compartment update request is triggered as a result of a host system executing a runtime library function allocating the address range for the compartment to which the second compartment update request pertains; the runtime library function presents the information relating to the address range on a data bus of the host system; and the act of determining the information relating to the address range comprises, in response to the second compartment update request, capturing the information relating to the address range from the data bus of the host system (Milburn, ¶54-56).
Regarding claim 19:
wherein: the compartment update request is sent by a host processor as a result of executing one or more instructions in a source compartment, the one or more instructions configured to cause the host processor to provide, to the compartment check hardware, a global identifier for a source compartment of the compartment transition, a global identifier for the target compartment of the compartment transition, and/or a local identifier for the target compartment relative to the source compartment (Milburn, ¶45, ¶86, Abstract).
Regarding claim 20:
the processing hardware comprises compartment check hardware implemented by one or more processors programmed by executable instructions, one or more programmable logic devices programmed by bitstreams, and/or one or more logic circuits fabricated into semiconductors (Milburn, ¶153, 79-80).
and the compartment check hardware is configured to: in response to receiving a compartment update request, determine a target compartment of a compartment transition triggering the compartment update request (Milburn, ¶66-67, ¶144).
Milburn does not explicitly suggest, and load, by the compartment check hardware, a compartment configuration corresponding to the target compartment, wherein the compartment configuration indicates at least one address range associated with the target compartment; however, in a same field of endeavor DeHon discloses this limitation (DeHon, ¶152, ¶389. ¶536, ¶165).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to include the method of component update of Milburn with the configuration and loading mechanism disclosed in DeHon to provide protection against simple code injection attacks stated by DeHon at ¶82.
Regarding claim 21:
wherein: the compartment check hardware is configured to determine the target compartment of the compartment transition at least in part by: determining, based on the compartment update request, a local identifier of the target compartment relative to a source compartment of the compartment transition; andu sing a compartment configuration corresponding to the source compartment to map the local identifier of the target compartment to a global identifier of the target compartment; and the compartment check hardware is configured to load the compartment configuration corresponding to the target compartment based on the global identifier of the target compartment (Milburn, ¶45, ¶86, Abstract).
Regarding claim 22:
wherein: the global identifier of the target compartment comprises a memory address at which the compartment configuration corresponding to the target compartment is stored (Milburn, ¶12).
Regarding claim 23:
wherein: the at least one address range associated with the target compartment comprises at least one address range that an instruction executing in the target compartment is allowed to access (Milburn, ¶15-18).
Regarding claim 24:
wherein: the compartment transition comprises a branch instruction; the compartment check hardware is configured to determine the target compartment of the compartment transition at least in part by: determining, based on the compartment update request, a target address of the branch instruction; and matching the target address of the branch instruction to the target compartment (Milburn, ¶84-85, ¶22).
Regarding claim 25:
herein: the compartment check hardware is configured to receive the compartment update request from tag processing hardware configured to check instructions executed by a host system; and the tag processing hardware is configured to: detect the compartment transition, at least in part by determining that an instruction executed by the host system represents a transfer of control from a source compartment to the target compartment; and issue the compartment update request in response to detecting the compartment transition (Milburn, ¶76, ¶123).
Regarding claim 26:
Wherein: the tag processing hardware is configured to determine that the instruction represents a transfer of control at least in part by determining that the instruction matches at least one rule of a compartmentalization policy (Milburn, ¶3).
Regarding claim 27:
wherein: the compartmentalization policy comprises a compartment entry rule and/or a compartment exit rule (Milburn, ¶107).
Regarding claim 28:
wherein: the tag processing hardware is further configured to construct an input pattern based on metadata selected from a group consisting of: an instruction type of the instruction; and metadata associated with the instruction; and the tag processing hardware is configured to use the input pattern to determine whether the instruction matches at least one rule of the compartmentalization policy (Milburn, ¶114, ¶112).
Regarding claim 29:
wherein: the compartment check hardware is further configured to determine whether the compartment transition is allowed; and the compartment check hardware is configured to load the compartment configuration corresponding to the target compartment in response to determining that the compartment transition is allowed (Milburn, abstract).
Regarding claim 30:
wherein: the compartment check hardware is configured to determine whether the compartment transition is allowed at least in part by determining whether a compartment transition graph includes a transition from a source compartment of the compartment transition to the target compartment of the compartment transition (Milburn, ¶13-15).
Regarding claim 31:
Wherein: the compartment check hardware is further configured to: predict one or more compartment configurations that are likely to be encountered; loading the one or more predicted compartment configurations; and determine whether any of the one or more predicted compartment configurations is associated with the target compartment of the compartment transition triggering the compartment update request (Milburn, ¶141-144).
Regarding claim 32:
wherein: the compartment check hardware is further configured to:in response to receiving a compartment check request, determine a memory address associated with an instruction triggering the compartment check request;determine based on a current compartment configuration, one or more address ranges; andcheck the memory address associated with the instruction triggering the compartment check request against the one or more address ranges determined based on the current compartment configuration (Milburn, ¶12-13, ¶47).
Regarding claim 33:
wherein: the memory address associated with the instruction comprises a memory address from which the instruction is fetched; and the compartment check hardware is configured to check the memory address from which the instruction is fetched against a code address range in the current compartment configuration (Milburn, ¶74, ¶47).
Regarding claim 34:
wherein: the memory address associated with the instruction comprises a memory address that the instruction is attempting to access; and the compartment check hardware is configured to check the memory address that the instruction is attempting to access against a data address range in the current compartment configuration (Milburn, ¶147, ¶150.
Regarding claim 35:
wherein: the compartment update request comprises a first compartment update request; and the compartment check hardware is further configured to: determine, based on a second compartment update request, information relating to an address range that is dynamically allocated for a compartment to which the second compartment update request pertains; and use the information relating to the address range to update a compartment configuration for the compartment to which the second compartment update request pertains (Milburn, ¶55-56).
Regarding claim 36:
wherein: the information relating to the address range comprises a start address, an end address, and/or a size of the address range (Milburn, ¶17).
Regarding claim 37:
wherein: the second compartment update request is triggered as a result of a host system executing a runtime library function allocating the address range for the compartment to which the second compartment update request pertains; the runtime library function presents the information relating to the address range on a data bus of the host system; and the compartment check hardware is configured to determine the information relating to the address range at least in part by, in response to the second compartment update request, capturing the information relating to the address range from the data bus of the host system (Milburn, ¶554-56).
Regarding claim 38:
wherein: the compartment update request is sent by a host system as a result of executing one or more instructions in a source compartment, the one or more instructions configured to cause the host system to provide, to the compartment check hardware, a global identifier for a source compartment of the compartment transition, a global identifier for the target compartment of the compartment transition, and/or a local identifier for the target compartment relative to the source compartment (Milburn, ¶45, ¶86, ABSTRACT).
Regarding claim 39:
At least one computer-readable medium having stored thereon one or more executable instructions for programming at least one processor, one or more bitstreams for programming at least one logic device, and/or at least one hardware description that, when synthesized, produces at least one netlist for fabricating at least one logic circuit, wherein the at least one programmed processor, the at least one programmed logic device, and/or the at least one fabricated logic circuit implement compartment check hardware configured to: (Milburn, ¶9-10).
in response to receiving a compartment update request, determine a target compartment of a compartment transition triggering the compartment update request; and (Milburn, ¶66-67, ¶144).
Milburn does not explicitly suggest, and load, by the compartment check hardware, a compartment configuration corresponding to the target compartment, wherein the compartment configuration indicates at least one address range associated with the target compartment; however, in a same field of endeavor DeHon discloses this limitation (DeHon, ¶152, ¶389. ¶536, ¶165).
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to include the method of component update of Milburn with the configuration and loading mechanism disclosed in DeHon to provide protection against simple code injection attacks stated by DeHon at ¶82.
Conclusion
8. The prior art made of record and not relied upon is considered pertinent to applicant’s disclosure. Any inquiry concerning this communication or earlier communications from the examiner should be directed to Monjour Rahim whose telephone number is (571)270-3890.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Shewaye Gelagay can be reached on 571-272-4219. 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 CANANDA) or 571-272-1000.
/Monjur Rahim/
Patent Examiner
United States Patent and Trademark Office
Art Unit: 2436; Phone: 571.270.3890
E-mail: monjur.rahim@uspto.gov
Fax: 571.270.4890