DETAILED ACTION
Response to Amendment
This action is responsive to the amendment filed on 8/19/2025. Claims 1-6, 8-20 and 22-23 are pending and have been examined. Claims 7 and 21 have been cancelled. Claims 1, 3, 8-10 and 22-23 have been amended.
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 .
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claim 10 is rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
In regards to claim 10, the limitation stating “…wherein the circular queue comprises a reorder buffer” lacks clarity in light of the amendments made to claims 1-2 from which claim 10 depends. The examiner notes that currently amended claim 1 states “…delaying the exception handling routine based on information in the ordered list, and without using data stored in a reorder buffer”, then claim 2 states “…the ordered list of instructions is maintained in a circular queue”. Thus, claim 10 lacks clarity because it is unclear how delaying the exception handling routine based on information in the ordered list occurs without using data in a reorder buffer, if the ordered list is maintained in a reorder buffer as disclosed in claim 10 (based on limitations of claims 1-2 from which it depends).
The examiner suggests cancelling claim 10 or amending claim 1 to remove the contradictory language.
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.
Claim(s) 1-6, 8, 10-11, 14, 16-19 and 22-23 is/are rejected under 35 U.S.C. 103 as being unpatentable over, Spasov, PGPUB No. 2018/0107487 and further in view of Sodani, PGPUB No. 2008/0148282.
In regards to claim 1, Spasov discloses A processor-implemented method for instruction execution ([0006-0007 and Fig. 1]) comprising: accessing a processor core, and wherein the processor core executes one or more instructions out of order ([0015-0016 and 0019-0020]: wherein a processor core is accessed and the processor core includes execution units that execute instructions issued in any order, and are thus executed out-of-order (See Fig. 1)) maintaining an ordered list of instructions, wherein the ordered list is based on instructions that are presented to the processor core for execution ([0018-0021]: wherein a reorder buffer maintains an ordered list of instructions, wherein the ordered list of instructions is based on instructions that are presented to the processor core (element 100)) and wherein the ordered list is organized using one or more pointers ([0019-0020]: wherein the reorder buffer is organized using tail and head pointers (Figs. 1-2B)) detecting an execution exception in the processor core, wherein the execution exception corresponds to one of the instructions in the ordered list ([0020-0022]: wherein an execution exception is detected in execution unit (element 110). Wherein the execution exception corresponds to one of the instructions in the reorder buffer)
and wherein the execution exception requires initiating exception handling ([0019-0020]: wherein execution exception requires flushing the core (i.e., exception handling)) determining an effective age of an instruction in the ordered list that corresponds to the execution exception ([0019-0022]: wherein an effective age of an instruction that corresponds to the execution exception is determined using index I of instruction in reorder buffer as the index indicates the position of the instruction and the position indicates the age of the instruction relative to other instructions in ROB) initiating the exception handling, based on matching the effective age of an instruction in the ordered list with one of the one or more pointers ([0018-0023 and 0027]: wherein initiating flushing of the core is based on matching (comparing) the effective age indicated by the index of the instruction in the reorder buffer with the tail or head pointer of the reorder buffer (See Figs. 4-5))
wherein the match of the effective age of the instruction in the ordered list is established by comparison to a head pointer ([0022-0027]: wherein the match of the effective age (relative age) of the instruction in the reorder buffer is established by comparing an index of the instruction to a head pointer index (also see [0020-0021] for further clarity)) wherein the accessing, the maintaining, the detecting, and the determining enable delaying the exception handling based on information in the ordered list. (Spasov [0020-0022 and Figs. 3-5]: wherein flushing (exception handling) is delayed until after the accessing, maintaining, detecting and determining have occurred because flushing of instructions does not occur until after those steps. Wherein those steps are based on information in the ordered list)
Spasov does not disclose wherein the processor core executes at least one instruction thread, and wherein the execution exception requires initiating an exception handling routine; and initiating the exception handling routine, based on matching the effective age of an instruction in the ordered list nor wherein the detecting and the determining enable delaying the exception handling routine based on information in the ordered list, and without using data stored in a reorder buffer.
Sodani discloses wherein the processor core executes at least one instruction thread ([0027, 0033, 0037 and 0090]: wherein the processor core executes at least one instruction thread) wherein the execution exception requires initiating an exception handling routine ([0015, 0023 and 0077]: wherein execution exception requires invoking exception handler code and flushing instructions) initiating the exception handling routine, based on matching the effective age of an instruction in the ordered list ([0072-0077]: wherein initiating the exception handler code based on matching the effective age indicated by the instruction sequence number of the instruction in the ROB) wherein the detecting and the determining enable delaying the exception handling routine based on information in the ordered list, and without using data stored in a reorder buffer. ([0072-0077]: wherein the exception handling routine (performed at element 612) is delayed, based on a sequence number identifying a candidate instruction for retirement; wherein the sequence number identifies an exception generating instruction in the ordered list of instructions in the ROB (see [0045]) and therefore the delaying of the exception handling routine is based on information in the ordered list of the ROB. Furthermore, the exception handling routine is delayed when the event status register, including the sequence number, indicates that a sticky event is to be recorded at step 613 and then exception handling is to be performed at step 612 (see [0076-0077]). Thus, exception handling routine is delayed based on information (sequence number stored in event status register indexing the ordered list of ROB), and without using data stored in ROB)
It would have first been obvious to one of ordinary skill in the art before the effective filing date of the invention to modify the processor core of Spasov to execute a thread of instructions as the processor core of Sodani. It would have been obvious to one of ordinary skill in the art because it would have been the simple substitution of one known element (executing instructions of a thread using a processor core as taught in Sodani) for another (generically executing instructions using a processor core as taught in Spasov) to obtain predictable results (executing instructions of a thread using a processor core) (MPEP 2143, Example B).
It would have been further obvious to one of ordinary skill in the art before the effective filing date of the invention to modify the processor of Spasov which flushes instructions responsive to instruction exception detection to initiate an exception handling routine which flushes instructions responsive to instruction exception detection as taught in Sodani. It would have been obvious to one of ordinary skill in the art because using an exception handling routine to flush instructions allows for software to perform efficient error recovery in a processor (i.e., software exception routines can provide more flexibility and improved reliability). Furthermore, it would have been obvious to one of ordinary skill in the art because it would have been the simple substitution of one known element (flushing instructions using exception handling routine initiated responsive to instruction exception as taught in Sodani) for another (generically flushing instructions responsive to instruction exception as taught in Spasov) to obtain predictable results (flushing instruction using exception handling routine initiated responsive to instruction exception) (MPEP 2143, Example B).
Additionally, it would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to modify the processor core of Spasov to include an event status register to track exception information used for exception handling as the processor core of Sodani. It would have been obvious to one of ordinary skill in the art because using the event tracking register avoids or reduces overhead expense of unnecessarily tracking event status per instruction (Sodani [0026]).
Claim 22 is similarly rejected on the same basis as claim 1 as claim 22 is the computer program product corresponding to the method of claim 1. (Note: claim 22 includes limitations not stated in claim 1 such as “A computer program product embodied in a non-transitory computer readable medium for instruction execution, the computer program product comprising code which causes one or more processors”. However, Spasov discloses the above limitation in paragraph [0034])
Claim 23 is similarly rejected on the same basis as claim 1 as claim 23 is the computer system corresponding to the method of claim 1. (Note: claim 23 includes limitations not stated in claim 1 such as “A computer system for instruction execution comprising: a memory which stores instructions; one or more processors coupled to the memory wherein the one or more processors, when executing the instructions which are stored”. However, Spasov discloses the above limitation in paragraphs [0016 and 0034] and Fig. 6)
In regards to claim 2, the combination of Spasov and Sodani discloses The method of claim 1 (see rejection of claim 1 above) wherein the ordered list of instructions is maintained in a circular queue. (Spasov [0018]: wherein ordered list of instructions is maintained in a circular buffer| Sodani [0019])
In regards to claim 3, the combination of Spasov and Sodani discloses The method of claim 2 (see rejection of claim 2 above) wherein the one or more pointers that are used to organize the ordered list comprise the head pointer and a tail pointer within the circular queue. (Spasov [0018])
In regards to claim 4, the combination of Spasov and Sodani discloses The method of claim 3 (see rejection of claim 3 above) wherein the tail pointer indicates a youngest, non-retired instruction in the ordered list of instructions. (Spasov [0019 and 0021])
In regards to claim 5, the combination of Spasov and Sodani discloses The method of claim 3 (see rejection of claim 3 above) wherein the head pointer indicates an oldest, non-retired instruction in the ordered list of instructions. (Spasov [0019 and 0021])
In regards to claim 6, the combination of Spasov and Sodani discloses The method of claim 5 (see rejection of claim 5 above) wherein the effective age of an instruction corresponds to an address within the circular queue. (Spasov [0019-0022]: wherein effective age (relative age) of an instruction corresponds to a location/position (i.e., an address) indicated by an index within the circular buffer| Sodani [0045])
In regards to claim 8, the combination of Spasov and Sodani discloses The method of claim 1 (see rejection of claim 1 above) wherein the comparison comprises an "equal to" comparison. (Spasov [0024-0027, 0030]: wherein head pointer index is compared to determine if instruction index is greater than or equal to head pointer (A≥B))
In regards to claim 10, the combination of Spasov and Sodani discloses The method of claim 2 (see rejection of claim 2 above) wherein the circular queue comprises a reorder buffer within the processor core. (Spasov [0018 and See Fig. 1]| Sodani [0019 and 0036])
In regards to claim 11, the combination of Spasov and Sodani thus far discloses The method of claim 1 (see rejection of claim 1 above).
The combination of Spasov and Sodani thus far does not disclose further comprising coupling a register in the processor core for storing an index related to the ordered list.
Sodani discloses further comprising coupling a register in the processor core for storing an index related to the ordered list. ([0026 and 0045]: wherein an event tracker register coupled in the processor stores a sequence number value (index) into reorder buffer (See Fig. 3))
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to modify the processor core of Spasov to include a register storing an index related to a reorder buffer as the processor core of Sodani. It would have been obvious to one of ordinary skill in the art because using the event tracking register avoids or reduces overhead expense of unnecessarily tracking event status per instruction (Sodani [0026]).
In regards to claim 14, the combination of Spasov and Sodani thus far discloses The method of claim 11 (see rejection of claim 11 above) wherein the index comprises an address of an entry in the ordered list. (Sodani [0045]: wherein the sequence number value comprises an address or location of an entry in the ROB)
In regards to claim 16, the combination of Spasov and Sodani thus far discloses The method of claim 1 (see rejection of claim 1 above).
The combination of Spasov and Sodani thus far does not explicitly disclose wherein the execution exception is related to a fetch or a decode exception. Spasov generally discloses an execution exception but does not explicitly disclose the cause of the exception or what type of exception occurred.
Sodani discloses wherein the execution exception is related to a fetch or a decode exception. ([0043]: wherein the execution exception is related to a fetch exception (page access fault, data segment fault, etc.))
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to modify the execution exception of Spasov to be related to a fetch or decode exception as in Sodani. It would have been obvious to one of ordinary skill in the art because it would have been the simple substitution of one known element (fetch or decode exception as taught in Sodani) for another (generic exception as taught in Spasov) to obtain predictable results (detecting and handling fetch and decode exceptions in a processor) (MPEP 2143, Example B).
In regards to claim 17, the combination of Spasov and Sodani discloses The method of claim 16 (see rejection of claim 16 above). wherein the fetch or the decode exception comprises an address translation fault, an access fault, an alignment fault, or an illegal opcode (Sodani [0043]: wherein a page access fault is disclosed)
In regards to claim 18, the combination of Spasov and Sodani discloses The method of claim 16 (see rejection of claim 16 above). wherein the detecting an execution exception in the processor core prevents execution of any new instructions not already in the ordered list of instructions. (Spasov [0020-0027]: wherein responsive to detecting exception in the processor core the pipeline is flushed as to remove any instructions younger than the exception instruction, whereas older instructions are maintained and allowed to execute. Thus, exception detection prevents any new or younger instructions not already in the reorder buffer from executing |Sodani [0023, 0025, 0054 and 0077])
In regards to claim 19, the combination of Spasov and Sodani thus far discloses The method of claim 1 (see rejection of claim 1 above).
The combination of Spasov and Sodani thus far does not explicitly disclose wherein the execution exception is related to a breakpoint or watchpoint. Spasov generally discloses an execution exception but does not explicitly disclose the cause of the exception or what type of exception occurred.
Sodani discloses wherein the execution exception is related to a breakpoint or watchpoint. ([0017 and 0043]: wherein the execution exception is related to a breakpoint because it causes breakpoint processing)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to modify the execution exception of Spasov to be related to a breakpoint as the exception in Sodani. It would have been obvious to one of ordinary skill in the art because it would have been the simple substitution of one known element (exception related to breakpoint processing as taught in Sodani) for another (generic exception as taught in Spasov) to obtain predictable results (detecting and handling exceptions related to breakpoints in a processor) (MPEP 2143, Example B).
Claim(s) 9 is/are rejected under 35 U.S.C. 103 as being unpatentable over, Spasov, Sodani and further in view of Tran, USPAT No. 5,887,152.
In regards to claim 9, the combination of Spasov and Sodani discloses The method of claim 1 (see rejection of claim 1 above) wherein the comparison comprises comparing a position value corresponding to the instruction with a position value corresponding the oldest, non-retired instruction in the ordered list of instructions. (Spasov [0024-0027 and 0030]: wherein head pointer index (position of oldest instruction in ROB) is compared to determine instruction index (position value corresponding to instruction in ROB) is greater than or equal to head pointer (A≥B))
The combination of Spasov and Sodani does not disclose a comparison
with a position value corresponding to a value of one less than the oldest, non-retired instruction in the ordered list of instructions.
Tran discloses a comparison with a position value corresponding to a value of one less than the oldest, non-retired instruction in the ordered list of instructions. (Column 10, lines 36-67: wherein a second oldest pointer of a reorder buffer is compared)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to modify the comparisons using the ROB of Spasov to compare a value to a second oldest instruction of an ROB as taught in Tran. It would have been obvious to one of ordinary skill in the art because it would have been the simple substitution of one known element (comparing an index position to a second oldest instruction in an ROB as taught in Tran) for another (comparing an index position to an oldest instruction in ROB in Spasov) to obtain predictable results (comparing an index position of an instruction in a ROB to a second oldest instruction position in an ROB) (MPEP 2143, Example B). Furthermore, the comparison can be used as a mechanism for branch recovery and a mechanism for performing load data cache misses and store ordering (Tran: Column 10, line 65-67 to Column 11, line 1).
Claim(s) 12-13 is/are rejected under 35 U.S.C. 103 as being unpatentable over, Spasov, Sodani and further in view of Tamai, PGPUB No. 2007/0028077.
In regards to claim 12, the combination of Spasov and Sodani discloses The method of claim 11 (see rejection of claim 11 above).
The combination of Spasov and Sodani does not disclose wherein entries in the ordered list each comprise a plurality of instruction execution fields. While Spasov and Sodani disclose a reorder buffer including a plurality of entries for instructions and instruction information. Neither reference explicitly discloses a reorder buffer entry comprising a plurality of execution fields.
Tamai discloses wherein entries in the ordered list each comprise a plurality of instruction execution fields. (See Fig. 8 and [0105-0115]: wherein entries of the reorder buffer comprise a plurality of fields)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to modify the reorder buffer entries of Spasov to include a plurality of instruction execution fields as the reorder buffer in Tamai. It would have been obvious to one of ordinary skill in the art because it would have been the simple substitution of one known element (including instruction execution fields in entries of a reorder buffer as taught in Tamai) for another (generic reorder buffer entries as taught in Spasov) to obtain predictable results (using a reorder buffer with entries comprising a plurality of instruction execution fields) (MPEP 2143, Example B).
In regards to claim 13, the combination of Spasov, Sodani and Tamai discloses The method of claim 12 (see rejection of claim 12 above). wherein the effective age of an entry in the ordered list is independent of all of the plurality of instruction execution fields. (Spasov [0021]: wherein age of an entry is based on position or location of entry in the ROB and independent of data in the entry| Tamai: See Fig. 8 and [0105-0115]: wherein the age of an entry in a reorder buffer is based on position or location of entry in the ROB and independent of data in the entry fields (note: the combination of references would teach the above limitation))
Claim(s) 15 is/are rejected under 35 U.S.C. 103 as being unpatentable over, Spasov, Sodani and further in view of Hocken, USPAT No. 6,286,346.
In regards to claim 15, the overall combination of Spasov and Sodani discloses The method of claim 11 (see rejection of claim 11 above).
The overall combination of Spasov and Sodani does not disclose wherein the register comprises an eight-bit register. Sodani discloses the register storing an index but does not indicate the size of the register.
Hocken discloses eight-bit registers (See Fig. 6, elements 238-240).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to modify the register of Spasov to be an eight-bit register as in Hocken. It would have been obvious to one of ordinary skill in the art because it would have been the simple substitution of one known element (using an eight-bit register to store data as taught in Hocken) for another (generic register to store an index as taught in Sodani) to obtain predictable results (using an eight-bit register to store an index) (MPEP 2143, Example B). Furthermore, it would have been obvious because changes in size (using a register with a different size/width) have been deemed obvious by the courts (See In In re Rose, 220 F.2d 459, 105 USPQ 237 (CCPA 1955) (MPEP 2144.04IV(A))).
Claim(s) 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over, Spasov, Sodani and further in view of Grocutt, PGPUB No. 2022/0366037.
In regards to claim 20, the combination of Spasov and Sodani thus far discloses The method of claim 1 (see rejection of claim 1 above).
The combination of Spasov and Sodani thus far does not explicitly disclose wherein the exception handling routine changes privilege levels in the processor core. Sodani generally discloses an exception handling routine but does not explicitly disclose the routine changes a privilege level.
Grocutt discloses wherein the exception handling routine changes privilege levels in a processor. ([0031-0033 and 0169-0171]: wherein the exception handling routine changes a security domain (privilege level) of a processor core)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to modify the exception handling routine of Spasov and Sodani to change a privilege level as the exception routine in Grocutt. It would have been obvious to one of ordinary skill in the art because changing to a more secure domain when an exception associated with a more secure domain is encountered will prevent access from code or applications in a less secure domain, thus avoiding inappropriate access of secure applications by less secure applications.
Response to Arguments
Applicant’s arguments, see page 7 of the remarks, filed on 8/19/2025, with respect to the previous 35 USC 112(b)rejections have been fully considered and are persuasive. Therefore, the 35 USC 112(b) rejections have been withdrawn.
Applicant's arguments filed on 8/19/2025, with respect to the 35 USC 103 rejections in view of Spasov and Sodani have been fully considered but they are not persuasive. Therefore the 35 USC 103 rejections regarding independent claims 1 and 22-23 have been maintained.
The dependent claims are argued at least based upon their dependencies and remain rejected to at least based upon dependency.
Applicant argues the rejection of claim 1 on pages 9-10 of the remarks, in the substance that:
“Portion of Fig. 1 of Spasov In contrast, the currently claimed limitations use a single entity of the ordered list and operate "without using data stored in a reorder buffer" as described throughout the instant application (and claimed in the currently amended independent claims), as well as in Fig. 3.
While Sodani mentions that "when an instruction becomes the oldest instruction in the machine and before the instruction is retired, its event status in its reorder buffer entry is checked" (Sodani, [0024]), it does not show or suggest, and in fact teaches away from "initiating the exception handling routine, based on matching the effective age of an instruction in the ordered list with one of the one or more pointers, wherein the match of the effective age of the instruction in the ordered list is established by comparison to a head pointer; and wherein the accessing, the maintaining, the detecting, and the determining enable delaying the exception handling routine based on information in the ordered list, and without using data stored in a reorder buffer" as recited in currently amended claim 1. Thus, Sodani does not show or suggest the limitations of currently amended claim.”
The examiner respectfully disagrees with the applicant’s position regarding the Sodani reference. Although, paragraph [0024] indicates that the ROB is checked for event status information, the embodiment of Fig. 6 (see [0072]) discloses that there is no event status information stored in a ROB, rather the information is stored in an event status register. Sodani discloses a delaying of exception handling, based on a sequence number (stored in an event status register) which indicates an exception generating instruction in an ordered list of the ROB (see [0045]), and without using data stored in a reorder buffer because the event status register stores the sequence number and exception event information indicating whether a sticky event is to be recorded or not and when an exception handling routine occurs at element 612 of Fig. 6 (see [0076-0077]). Thus, Fig. 6 of Sodani discloses delaying exception handling without using event status information in a ROB but in an event status register.
Furthermore, even assuming the reference of Sodani discloses using data in a reorder buffer such as the index (sequence number) of the exception generating instruction. Sodani would still teach the amended claim limitation because the claim states “…delaying the exception handling routine based on information in the ordered list, and without using data stored in a reorder buffer” thus the claim only requires that there is some information in an ordered list of a reorder buffer that is used for delaying the exception handling routine and some data stored in a reorder buffer which is not used for delaying the exception. Said another way, the claim does not require delaying the exception handling routine without using “any or all” data stored in a reorder buffer. Thus, Sodani using a sequence number identifying the excepting instruction stored in an ordered list of the reorder buffer to delay exception handling would teach the claim limitation because the delaying is done without using any other data stored in the reorder buffer.
Therefore, Sodani discloses the amended claim 1.
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 COURTNEY P SPANN whose telephone number is (571)431-0692. The examiner can normally be reached M-F, 9am-6pm, 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, Jyoti Mehta can be reached at 571-270-3995. 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.
/COURTNEY P SPANN/ Primary Examiner, Art Unit 2183