DETAILED ACTION
Claims 1-20 are pending and have been examined.
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 § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1-3 and 11-13 are rejected under 35 U.S.C. 103 as being unpatentable over US 2015/0150024 A1 (Grossi et al.), in view of US 5,038,282 A (Gilbert et al.).
As to Claims 1 and 11, Grossi et al. disclose an address monitor device (Grossi et al. – Fig. 1); and an address monitor method (Grossi et al. - ¶ [0014]), respectively, comprising:
a boundary address register, configured to monitor a boundary address of a stack based on a usage state of a stack pointer (Grossi et al. recite: “[0015] One aspect of the invention consists in a method of detecting stack overflows--and more particularly overflows of the call stack--including the following steps: [0016] A. storing in at least one dedicated register at least one data item chosen from: a data item indicating a maximum permitted value for a stack pointer,” {Examiner maps to a Top of Stack, or TOS register, as a boundary register} “and a data item indicating a minimum permitted value for said stack pointer;” {Examiner maps to an End of Stack, or EOS register, as another boundary register} “[0017] B. effecting a comparison between a current” {Examiner maps to the stack pointer register} or past value of said stack pointer and said data item or each of said data items;” {Examiner maps to the comparison of the stack pointer register to a boundary address register} “and [0018] C. generating a stack overflow exception if said comparison indicates that said current or past value of said stack pointer is greater than said maximum permitted value or less than said minimum permitted value.” {Examiner maps to the comparator comparing the stack pointer and the boundary address for determining whether to output a stack overflow} - ¶¶ [0015-0018]);
a stack pointer register, configured to obtain a usage address of the stack at present based on the usage state of the stack pointer (Grossi et al. recite: “[0015] One aspect of the invention consists in a method of detecting stack overflows--and more particularly overflows of the call stack--including the following steps: [0016] A. storing in at least one dedicated register at least one data item chosen from: a data item indicating a maximum permitted value for a stack pointer,” {Examiner maps to a Top of Stack, or TOS register, as a boundary register} “and a data item indicating a minimum permitted value for said stack pointer;” {Examiner maps to an End of Stack, or EOS register, as another boundary register} “[0017] B. effecting a comparison between a current” {Examiner maps to the stack pointer register} or past value of said stack pointer and said data item or each of said data items;” {Examiner maps to the comparison of the stack pointer register to a boundary address register} “and [0018] C. generating a stack overflow exception if said comparison indicates that said current or past value of said stack pointer is greater than said maximum permitted value or less than said minimum permitted value.” {Examiner maps to the comparator comparing the stack pointer and the boundary address for determining whether to output a stack overflow} - ¶¶ [0015-0018]); and
a comparator, configured to compare the stack pointer and the boundary address for determining whether to output a stack overflow. (Grossi et al. recite: “[0015] One aspect of the invention consists in a method of detecting stack overflows--and more particularly overflows of the call stack--including the following steps: [0016] A. storing in at least one dedicated register at least one data item chosen from: a data item indicating a maximum permitted value for a stack pointer,” {Examiner maps to a Top of Stack, or TOS register, as a boundary register} “and a data item indicating a minimum permitted value for said stack pointer;” {Examiner maps to an End of Stack, or EOS register, as another boundary register} “[0017] B. effecting a comparison between a current” {Examiner maps to the stack pointer register} or past value of said stack pointer and said data item or each of said data items;” {Examiner maps to the comparison of the stack pointer register to a boundary address register} “and [0018] C. generating a stack overflow exception if said comparison indicates that said current or past value of said stack pointer is greater than said maximum permitted value or less than said minimum permitted value.” {Examiner maps to the comparator comparing the stack pointer and the boundary address for determining whether to output a stack overflow} - ¶¶ [0015-0018]).
Grossi et al. disclose the comparison as cited above, but generates a stack overflow, which is not explicitly disclosed as an interrupt. However, Gilbert et al. disclose
a comparator, configured to compare the stack pointer and the boundary address for determining whether to output an interrupt command (Gilbert et al. recite: “Both the top of stack (TOS) and stack pointer 82 are accessible from the host; refer to Table 3 for their I/O assignments. The host can read the entire stack by multiple iterations of reading the TOS and incrementing the pointer. Host access of TOS and pointer are denied when the AM is executing. Should the stack pointer overflow or underflow, it sends an error signal to the Intel 8259A PIC in the interface 93 which generates a host interrupt.” – 16:60-17:4).
It would have been obvious to one of ordinary skill in the art to combine a comparator, configured to compare the stack pointer and the boundary address for determining whether to output an interrupt command, taught by Gilbert et al., with a comparator, configured to compare the stack pointer and the boundary address for determining whether to output a stack overflow, taught by Grossi et al., in order to force an idle state in the case of a stack underflow or overflow to allow the system to implement a recovery measure(s) – (Gilbert et al. - 16:60-17:4).
As to Claim 2, the combination of Grossi et al. and Gilbert et al. discloses the address monitor device of claim 1,
wherein if the usage state of the stack pointer is decreasing, the boundary address register monitors a bottom address EOS of the stack (Grossi et al. recite: “[0015] One aspect of the invention consists in a method of detecting stack overflows--and more particularly overflows of the call stack--including the following steps: [0016] A. storing in at least one dedicated register at least one data item chosen from: a data item indicating a maximum permitted value for a stack pointer,” {Examiner maps to a Top of Stack, or TOS register, as a boundary register} “and a data item indicating a minimum permitted value for said stack pointer;” {Examiner maps to an End of Stack, or EOS register, as another boundary register} “[0017] B. effecting a comparison between a current” {Examiner maps to the stack pointer register} or past value of said stack pointer and said data item or each of said data items;” {Examiner maps to the comparison of the stack pointer register to a boundary address register} “and [0018] C. generating a stack overflow exception if said comparison indicates that said current or past value of said stack pointer is greater than said maximum permitted value or less than said minimum permitted value.” {Examiner maps to the comparator comparing the stack pointer and the boundary address for determining whether to output a stack overflow} - ¶¶ [0015-0018]);
wherein the comparator compares the stack pointer and the bottom address EOS, if the stack pointer is less than the bottom address EOS, the interrupt command is outputted (Grossi et al. recite: “[0015] One aspect of the invention consists in a method of detecting stack overflows--and more particularly overflows of the call stack--including the following steps: [0016] A. storing in at least one dedicated register at least one data item chosen from: a data item indicating a maximum permitted value for a stack pointer,” {Examiner maps to a Top of Stack, or TOS register, as a boundary register} “and a data item indicating a minimum permitted value for said stack pointer;” {Examiner maps to an End of Stack, or EOS register, as another boundary register} “[0017] B. effecting a comparison between a current” {Examiner maps to the stack pointer register} or past value of said stack pointer and said data item or each of said data items;” {Examiner maps to the comparison of the stack pointer register to a boundary address register} “and [0018] C. generating a stack overflow exception if said comparison indicates that said current or past value of said stack pointer is greater than said maximum permitted value or less than said minimum permitted value.” {Examiner maps to the comparator comparing the stack pointer and the boundary address for determining whether to output a stack overflow} - ¶¶ [0015-0018]. Gilbert et al. recite: “Both the top of stack (TOS) and stack pointer 82 are accessible from the host; refer to Table 3 for their I/O assignments. The host can read the entire stack by multiple iterations of reading the TOS and incrementing the pointer. Host access of TOS and pointer are denied when the AM is executing. Should the stack pointer overflow or underflow, it sends an error signal to the Intel 8259A PIC in the interface 93 which generates a host interrupt.” – 16:60-17:4).
The motivation and obviousness arguments are the same as in Claim 1.
As to Claim 3, the combination of Grossi et al. and Gilbert et al. discloses the address monitor device of claim 1,
wherein if the usage state of the stack pointer is increasing, the boundary address register monitors a top address of the stack (Grossi et al. recite: “[0015] One aspect of the invention consists in a method of detecting stack overflows--and more particularly overflows of the call stack--including the following steps: [0016] A. storing in at least one dedicated register at least one data item chosen from: a data item indicating a maximum permitted value for a stack pointer,” {Examiner maps to a Top of Stack, or TOS register, as a boundary register} “and a data item indicating a minimum permitted value for said stack pointer;” {Examiner maps to an End of Stack, or EOS register, as another boundary register} “[0017] B. effecting a comparison between a current” {Examiner maps to the stack pointer register} or past value of said stack pointer and said data item or each of said data items;” {Examiner maps to the comparison of the stack pointer register to a boundary address register} “and [0018] C. generating a stack overflow exception if said comparison indicates that said current or past value of said stack pointer is greater than said maximum permitted value or less than said minimum permitted value.” {Examiner maps to the comparator comparing the stack pointer and the boundary address for determining whether to output a stack overflow} - ¶¶ [0015-0018]);
wherein the comparator compares the stack pointer and the top address, if the stack pointer is greater than the top address, the interrupt command is outputted (Grossi et al. recite: “[0015] One aspect of the invention consists in a method of detecting stack overflows--and more particularly overflows of the call stack--including the following steps: [0016] A. storing in at least one dedicated register at least one data item chosen from: a data item indicating a maximum permitted value for a stack pointer,” {Examiner maps to a Top of Stack, or TOS register, as a boundary register} “and a data item indicating a minimum permitted value for said stack pointer;” {Examiner maps to an End of Stack, or EOS register, as another boundary register} “[0017] B. effecting a comparison between a current” {Examiner maps to the stack pointer register} or past value of said stack pointer and said data item or each of said data items;” {Examiner maps to the comparison of the stack pointer register to a boundary address register} “and [0018] C. generating a stack overflow exception if said comparison indicates that said current or past value of said stack pointer is greater than said maximum permitted value or less than said minimum permitted value.” {Examiner maps to the comparator comparing the stack pointer and the boundary address for determining whether to output a stack overflow} - ¶¶ [0015-0018]. Gilbert et al. recite: “Both the top of stack (TOS) and stack pointer 82 are accessible from the host; refer to Table 3 for their I/O assignments. The host can read the entire stack by multiple iterations of reading the TOS and incrementing the pointer. Host access of TOS and pointer are denied when the AM is executing. Should the stack pointer overflow or underflow, it sends an error signal to the Intel 8259A PIC in the interface 93 which generates a host interrupt.” – 16:60-17:4).
The motivation and obviousness arguments are the same as in Claim 1.
As to Claim 12, the combination of Grossi et al. and Gilbert et al. discloses the address monitor method of claim 11, wherein a step of monitoring the boundary address of the stack based on the usage state of the stack pointer by the boundary address register comprises:
if the usage state of the stack pointer is decreasing, monitoring a bottom address EOS of the stack by the boundary address register (Grossi et al. recite: “[0015] One aspect of the invention consists in a method of detecting stack overflows--and more particularly overflows of the call stack--including the following steps: [0016] A. storing in at least one dedicated register at least one data item chosen from: a data item indicating a maximum permitted value for a stack pointer,” {Examiner maps to a Top of Stack, or TOS register, as a boundary register} “and a data item indicating a minimum permitted value for said stack pointer;” {Examiner maps to an End of Stack, or EOS register, as another boundary register} “[0017] B. effecting a comparison between a current” {Examiner maps to the stack pointer register} or past value of said stack pointer and said data item or each of said data items;” {Examiner maps to the comparison of the stack pointer register to a boundary address register} “and [0018] C. generating a stack overflow exception if said comparison indicates that said current or past value of said stack pointer is greater than said maximum permitted value or less than said minimum permitted value.” {Examiner maps to the comparator comparing the stack pointer and the boundary address for determining whether to output a stack overflow} - ¶¶ [0015-0018]);
wherein a step of comparing the stack pointer and the boundary address for determining whether to output the interrupt command by the comparator comprises:
comparing the stack pointer and the bottom address EOS by the comparator, if the stack pointer is less than the bottom address EOS, outputting the interrupt command (Grossi et al. recite: “[0015] One aspect of the invention consists in a method of detecting stack overflows--and more particularly overflows of the call stack--including the following steps: [0016] A. storing in at least one dedicated register at least one data item chosen from: a data item indicating a maximum permitted value for a stack pointer,” {Examiner maps to a Top of Stack, or TOS register, as a boundary register} “and a data item indicating a minimum permitted value for said stack pointer;” {Examiner maps to an End of Stack, or EOS register, as another boundary register} “[0017] B. effecting a comparison between a current” {Examiner maps to the stack pointer register} or past value of said stack pointer and said data item or each of said data items;” {Examiner maps to the comparison of the stack pointer register to a boundary address register} “and [0018] C. generating a stack overflow exception if said comparison indicates that said current or past value of said stack pointer is greater than said maximum permitted value or less than said minimum permitted value.” {Examiner maps to the comparator comparing the stack pointer and the boundary address for determining whether to output a stack overflow} - ¶¶ [0015-0018]. Gilbert et al. recite: “Both the top of stack (TOS) and stack pointer 82 are accessible from the host; refer to Table 3 for their I/O assignments. The host can read the entire stack by multiple iterations of reading the TOS and incrementing the pointer. Host access of TOS and pointer are denied when the AM is executing. Should the stack pointer overflow or underflow, it sends an error signal to the Intel 8259A PIC in the interface 93 which generates a host interrupt.” – 16:60-17:4).
The motivation and obviousness arguments are the same as in Claim 1.
As to Claim 13, the combination of Grossi et al. and Gilbert et al. discloses the address monitor method of claim 11, wherein a step of monitoring the boundary address of the stack based on the usage state of the stack pointer by the boundary address register comprises:
if the usage state of the stack pointer is increasing, monitoring a top address TOS of the stack by the boundary address register (Grossi et al. recite: “[0015] One aspect of the invention consists in a method of detecting stack overflows--and more particularly overflows of the call stack--including the following steps: [0016] A. storing in at least one dedicated register at least one data item chosen from: a data item indicating a maximum permitted value for a stack pointer,” {Examiner maps to a Top of Stack, or TOS register, as a boundary register} “and a data item indicating a minimum permitted value for said stack pointer;” {Examiner maps to an End of Stack, or EOS register, as another boundary register} “[0017] B. effecting a comparison between a current” {Examiner maps to the stack pointer register} or past value of said stack pointer and said data item or each of said data items;” {Examiner maps to the comparison of the stack pointer register to a boundary address register} “and [0018] C. generating a stack overflow exception if said comparison indicates that said current or past value of said stack pointer is greater than said maximum permitted value or less than said minimum permitted value.” {Examiner maps to the comparator comparing the stack pointer and the boundary address for determining whether to output a stack overflow} - ¶¶ [0015-0018]);
wherein a step of comparing the stack pointer and the boundary address for determining whether to output the interrupt command by the comparator comprises:
comparing the stack pointer and the top address TOS by the comparator, if the stack pointer is greater than the top address, outputting the interrupt command (Grossi et al. recite: “[0015] One aspect of the invention consists in a method of detecting stack overflows--and more particularly overflows of the call stack--including the following steps: [0016] A. storing in at least one dedicated register at least one data item chosen from: a data item indicating a maximum permitted value for a stack pointer,” {Examiner maps to a Top of Stack, or TOS register, as a boundary register} “and a data item indicating a minimum permitted value for said stack pointer;” {Examiner maps to an End of Stack, or EOS register, as another boundary register} “[0017] B. effecting a comparison between a current” {Examiner maps to the stack pointer register} or past value of said stack pointer and said data item or each of said data items;” {Examiner maps to the comparison of the stack pointer register to a boundary address register} “and [0018] C. generating a stack overflow exception if said comparison indicates that said current or past value of said stack pointer is greater than said maximum permitted value or less than said minimum permitted value.” {Examiner maps to the comparator comparing the stack pointer and the boundary address for determining whether to output a stack overflow} - ¶¶ [0015-0018]. Gilbert et al. recite: “Both the top of stack (TOS) and stack pointer 82 are accessible from the host; refer to Table 3 for their I/O assignments. The host can read the entire stack by multiple iterations of reading the TOS and incrementing the pointer. Host access of TOS and pointer are denied when the AM is executing. Should the stack pointer overflow or underflow, it sends an error signal to the Intel 8259A PIC in the interface 93 which generates a host interrupt.” – 16:60-17:4).
The motivation and obviousness arguments are the same as in Claim 1.
Allowable Subject Matter
Claims 4-10 and 14-20 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Interview Practice
USPTO Automated Interview Request (AIR)
The USPTO AIR is a new optional online interview scheduling tool that allows Applicants to request an interview with an Examiner for their pending patent application.
The USPTO AIR form is available on our website at: http://www.uspto.gov/patent/laws-and-regulations/interview-practice.
By submitting this type of interview request, the pending patent application will be in compliance with the written authorization requirement for Internet communication in accordance with MPEP §502.03. This authorization will be in effect until the Applicant provides a written withdrawal of authorization to the Examiner of record.
If you have questions or need assistance with the USPTO AIR form or with interview practice at the USPTO, please contact an Interview Specialist at http://www.uspto.gov/patent/laws-and-regulations/interview-practice/interview-specialist or send an email to ExaminerInterviewPractice@USPTO.GOV.
Examiner Notes:
A) Prior to conducting any interview (whether using AIR or not), Applicant(s) must submit an agenda including the proposed date and time, all arguments in writing, and proposed claim amendments (if applicable). Any proposed amendments or arguments not presented in the agenda will only be heard by the Examiner, but because the Examiner will not have heard them in advance and been given an equitable opportunity to consider them, no decision will be rendered, nor agreement made. ALL AGENDAS MUST BE RECEIVED BY THE EXAMINER AT LEAST 24 HOURS PRIOR TO THE START OF THE INTERVIEW, OR THE PREVIOUS BUSINESS DAY, WHICHEVER IS LONGER, or the interview may have to be rescheduled.
B) After-final interviews may be granted, but the agenda must be in compliance with MPEP 713.09 which limits the interview only to discussions of proposed amendments, or clarification for appeal. After-final interviews are not to be conducted for the purpose of rehashing previously made arguments. After seeing the agenda, Examiner will decide whether to grant or deny the interview.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. See Form PTO-892.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to RICHARD G KEEHN whose telephone number is (571)270-5007. The examiner can normally be reached M-F 9:00am - 5:00pm Eastern.
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, John A Follansbee can be reached at 571-272-3964. 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.
/RICHARD G KEEHN/Primary Examiner, Art Unit 2444