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 .
Detail Action
In the response filed on 12/30/2025, claims 1-5, 11-15, and 20-29 are pending.
This is a Final Action.
Priority
Receipt is acknowledged of certified copies of papers required by 37 CFR 1.55.
Response to Arguments
Claim Rejections - 35 USC § 103
Applicant's arguments filed 12/30/2025 have been fully considered but they are not persuasive.
Applicant are argued that the combination of Boucher and Lu fails to teaches: ”allocating at threshold value of a stack size for a first memory area by taking in to account call graph, the call probability for each node, and the stack usage.”
Examiner disagrees. The combination teaches these limitations. Boucher teaches allocating threshold/placeholder by determining whether and where data overflow, (see Boucher Fig. Sheet 4, p0042-p0050); and Lu teaches using call graph to analysis data flow. (see Lu p0005-p0007; see Lu p0050-p0066; fig. 2-3) Since Boucher considers dataflow when it sets placeholder, it would have been obvious for Boucher to use Lu’s call graph when it considers the location of the placeholder. Therefore, the combination of Boucher and Lu teaches these limitations.
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.
Claims 1-5, 11-15, 20-23, and 25-29 are rejected under 35 U.S.C. 103 as being unpatentable over Boucher US 2004/0019744 in view of Lu 2020/0167155.
17/994,163
Boucher US 2004/0019744 in view of Lu et al. US 2020/0167155
Claim 1
[1.P] An operating method of an electronic system in a real-time operating system, the operating method comprising:
Boucher p0009
[1.1] obtaining a call graph by performing static code analysis on at least one thread that corresponds to a task;
Lu teaches obtaining a call graph using a call graph analysis application. (see Lu p0050-p0066; fig. 2-3)
It would have been obvious at the time of the invention for a person ordinary skill in the art (POSITA) to include Lu’s teaching with method of Boucher in order provide better software components and an allocation of computational resources.
[1.2] obtain a stack usage of the thread and a call probability for each node by performing runtime profiling of call graph;
Lu teaches obtaining a call graph (p0055); and Boucher teaches obtaining a stack usage. (see Boucher p0033);
[1.3] allocating a threshold value of a stack size for a first memory area by taking into account the call graph, the call probability for each node, and the stack usage;
Lu teaches from a given type-propagation graph, any number of call graphs with any threshold probability values, as requested by a client, which includes memory management.(see Lu p0102-0103)
[1.4] expanding and storing a stack from the first memory area to a second memory area according to a comparison result between the threshold value and a stack usage of the first memory area; and
Boucher teaches expanding memory to new location when threshold is met. (see Boucher p0042-p0050)
[1.5] returning the stack to the first memory when execution is completed in the second memory area, wherein the electronic system comprises a memory device configured to include the first memory area and the second memory area.
Boucher teaches restoring stack memory back bound the placeholder stack frame. (see Boucher p0047-p0049)
Claim 2
The operating method of claim 1, wherein the threshold value is set based on the call graph of the thread, the stack usage of each node, and the call probability for each node and the set threshold value has a smaller size than a maximum stack usage of the call graph.
Boucher teaches checking amount of memory between SP and the end of the stack, or the number of times that the remaining memory was insufficient and if counter exceeds a pre-selected value. (see Boucher p0033);
Claim 3
The operating method of claim 1,
wherein the expanding from the first memory area to the second memory area comprises: generating an overflow alarm in the first memory area;
copying a stack frame most recently executed in the first memory area to the second memory area;
Boucher teaches generate an interrupt/ Alarm to signal the OS checking amount of memory between SP and the end of the stack, or the number of times that the remaining memory was insufficient and if counter exceeds a pre-selected value. (see Boucher p0033); and
Boucher teaches show the address of the stack frame that was allocated for the program previously. If the previous stack frame is large enough for the current needs of the program, the previous stack frame may be reused. For that purpose, the allocation instructions set the FP to the base of the previously used stack frame, and set the SP beyond the FP to encompass enough memory for the current stack needs of the program. (see Boucher p0035)
executing and storing remaining stack frames of the thread in the second memory area; and returning a stack pointer of the second memory area back to the first memory area in response to completion of execution of the remaining stacks.
Boucher teaches expanding memory to new location when threshold is met. (see Boucher p0042-p0050)
Boucher teaches restoring stack memory back bound the placeholder stack frame. (see Boucher p0047-p0049)
Claim 4
The operating method of claim 3, wherein the copying comprises storing a stack pointer and a link register value of the first memory area, copying the stack frame most recently executed in the first memory area to the second memory area, and changing the stored link register value to a return location of the first memory area.
Boucher teaches generate an interrupt/ Alarm to signal the OS checking amount of memory between SP and the end of the stack, or the number of times that the remaining memory was insufficient and if counter exceeds a pre-selected value. (see Boucher p0033); and
Boucher teaches show the address of the stack frame that was allocated for the program previously. If the previous stack frame is large enough for the current needs of the program, the previous stack frame may be reused. For that purpose, the allocation instructions set the FP to the base of the previously used stack frame, and set the SP beyond the FP to encompass enough memory for the current stack needs of the program. (see Boucher p0035; FP is frame pointer and SP is Stack pointer)
Claim 5
The operating method of claim 4, wherein subsequent stacks are executed in the second memory area and the executed stacks are returned back to the first memory area based on the stored stack pointer and the changed return location.
Boucher teaches expanding memory to new location when threshold is met. (see Boucher p0042-p0050)
Boucher teaches restoring stack memory back bound the placeholder stack frame. (see Boucher p0047-p0049)
Claim 11
[11.1] An electronic system comprising:
Boucher p0009
[11.2] a real-time operating system (RTOS) module configured to process a command from a host by dividing the command into at least one thread;
Boucher p0003-0024;
[11.3] a call graph module configured to get a call graph by performing static code analysis on the thread;
Lu teaches obtaining a call graph using a call graph analysis application. (see Lu p0050-p0066; fig. 2-3)
It would have been obvious at the time of the invention for a person ordinary skill in the art (POSITA) to include Lu’s teaching with method of Boucher in order provide better software components and an allocation of computational resources.
[11.4] a runtime profiler configured to get a stack usage of each node and a call probability for each node by performing runtime profiling of the call graph; and
Lu teaches obtaining a call graph (p0055); and Boucher teaches obtaining a stack usage. (see Boucher p0033);
[11.5] a memory device configured to include a first memory area and a second memory area, wherein the RTOS module is configured to:
allocate a stack space that corresponds to the thread to the first memory area on the basis of a threshold value based on the stack usage of each node and the call probability for each node,
store a stack corresponding to the thread in the allocated stack space in the first memory area, and
Lu teaches from a given type-propagation graph, any number of call graphs with any threshold probability values, as requested by a client, which includes memory management.(see Lu p0102-0103)
Boucher teaches expanding memory to new location when threshold is met. (see Boucher p0042-p0050)
[11.6] connect and store a subsequent stack to the second memory area, in response to an overflow alarm based on the call probability for each node and the stack usage of each node being generated.
Boucher teaches generate an interrupt/ Alarm to signal the OS checking amount of memory between SP and the end of the stack, or the number of times that the remaining memory was insufficient and if counter exceeds a pre-selected value. (see Boucher p0033); and
Boucher teaches show the address of the stack frame that was allocated for the program previously. If the previous stack frame is large enough for the current needs of the program, the previous stack frame may be reused. For that purpose, the allocation instructions set the FP to the base of the previously used stack frame, and set the SP beyond the FP to encompass enough memory for the current stack needs of the program. (see Boucher p0035)
Claim 12
The electronic system of claim 11, wherein a first stack area disposed in the first memory area and a second stack area disposed in the second memory area are discontinuous.
Boucher teaches Note that the stack frame extension instructions 130 may extend and replace the functionality of an existing function call (e.g., alloca( )), may be incorporated into a subroutine (e.g., SUB1) in the program 123, or may be implemented as a separate stand alone function call. (p0046)
Claim 13
The electronic system of claim 12, wherein the second memory area is not used for the thread until a connection to the first memory area is made.
Boucher (p0046); The extension is not call until main function is run.
Claim 14
The electronic system of claim 11, wherein the RTOS module is configured to copy a stack frame most recently executed in the first memory area to the second memory area and execute and store remaining stacks of the thread in the second memory area in response to the overflow alarm being generated.
Boucher teaches generate an interrupt/ Alarm to signal the OS checking amount of memory between SP and the end of the stack, or the number of times that the remaining memory was insufficient and if counter exceeds a pre-selected value. (see Boucher p0033); and
Boucher teaches show the address of the stack frame that was allocated for the program previously. If the previous stack frame is large enough for the current needs of the program, the previous stack frame may be reused. For that purpose, the allocation instructions set the FP to the base of the previously used stack frame, and set the SP beyond the FP to encompass enough memory for the current stack needs of the program. (see Boucher p0035)
Claim 15
The electronic system of claim 14, wherein the RTOS module is configured to return the executed stacks to the first memory area by using a stack pointer and a link register value in response to completion of the execution of the remaining stacks in the second memory area.
Boucher teaches generate an interrupt/ Alarm to signal the OS checking amount of memory between SP and the end of the stack, or the number of times that the remaining memory was insufficient and if counter exceeds a pre-selected value. (see Boucher p0033); and
Boucher teaches show the address of the stack frame that was allocated for the program previously. If the previous stack frame is large enough for the current needs of the program, the previous stack frame may be reused. For that purpose, the allocation instructions set the FP to the base of the previously used stack frame, and set the SP beyond the FP to encompass enough memory for the current stack needs of the program. (see Boucher p0035; FP is frame pointer and SP is Stack pointer)
Claim 20
The electronic system of claim 11, wherein the RTOS module is configured to keep the track stored in the first memory area until a usage of the first memory area reaches the threshold value, call a preset function when the usage of the first memory area reaches the threshold value, and store a subsequent stack in the second memory area according the called preset function.
Boucher teaches generate an interrupt/ Alarm to signal the OS checking amount of memory between SP and the end of the stack, or the number of times that the remaining memory was insufficient and if counter exceeds a pre-selected value. (see Boucher p0033); and
Boucher teaches show the address of the stack frame that was allocated for the program previously. If the previous stack frame is large enough for the current needs of the program, the previous stack frame may be reused. For that purpose, the allocation instructions set the FP to the base of the previously used stack frame, and set the SP beyond the FP to encompass enough memory for the current stack needs of the program. (see Boucher p0035; FP is frame pointer and SP is Stack pointer)
Boucher teaches functions and subroutines called by stacks p0026-p0046
17/994,163
Boucher US 2004/0019744 in view of Lu et al. US 2020/0167155
Claim 21
[21.1] An operating method of a memory device in a real-time operating system, the memory device comprising:
Boucher p0009
[21.2] a first memory area and a second memory area, the operating method comprising:
Boucher p0033-p0050; Fig 2-3;
[21.3] compiling a task into multiple threads and exploring a call graph by static code analysis on each thread;
Lu teaches obtaining a call graph using a call graph analysis application. (see Lu p0050-p0066; fig. 2-3)
It would have been obvious at the time of the invention for a person ordinary skill in the art (POSITA) to include Lu’s teaching with method of Boucher in order provide better software components and an allocation of computational resources.
[21.3] obtaining a stack usage of each node and a call probability for each node by performing dynamic code analysis on the explored call graph;
Lu teaches obtaining a call graph (p0050-p0066); and Boucher teaches obtaining a stack usage. (see Boucher p0030-0035);
[21.4] setting a stack size of the first memory area based on the dynamic code analysis result;
Lu teaches obtaining a call graph (p0050-p0066); and Boucher teaches obtaining a stack usage. (see Boucher p0030-0035);
[21.5] storing stack frames corresponding to the thread in sequence in the first memory area; and
storing a subsequent stack frame in the second memory area in response to an overflow alarm for the first memory area being generated.
Boucher teaches generate an interrupt/ Alarm to signal the OS checking amount of memory between SP and the end of the stack, or the number of times that the remaining memory was insufficient and if counter exceeds a pre-selected value. (see Boucher p0033); and
Boucher teaches show the address of the stack frame that was allocated for the program previously. If the previous stack frame is large enough for the current needs of the program, the previous stack frame may be reused. For that purpose, the allocation instructions set the FP to the base of the previously used stack frame, and set the SP beyond the FP to encompass enough memory for the current stack needs of the program. (see Boucher p0035)
As per claim 22, it is rejected under the same rationale as claim 12. See rejection above.
As per claim 23, it is rejected under the same rationale as claim 4. See rejection above.
17/994,163
Boucher US 2004/0019744 in view of Lu et al. US 2020/0167155
Claim 25
The operating method of claim 21, wherein the overflow alarm is generated by comparing call chain history information with a currently executed call.
Boucher teaches gather statistics on each instance in which a stack frame is allocated or extended into the overflow memory 204. The statistics may include, as examples, how much additional memory was needed to accommodate the new stack frame or extension, what sequence of subroutine calls gave rise to the need for the need to use the overflow memory 204, and how many times a particular thread has needed to use the overflow memory 204. As a result, the allocation instructions 128 and extension instructions 130 may provide the statistics to the program designer as an aid to understanding how often and how much additional stack space was needed, by which programs and threads, and what sequences of program calls lead to the need for additional stack space. (see Boucher p0052)
As per claim 26 is rejected under the same rationale as claim 2. See rejection above.
As per claim 27 is rejected under the same rationale as claim 25. See rejection above.
As per claim 28 is rejected under the same rationale as claim 20. See rejection above.
17/994,163
Boucher US 2004/0019744 in view of Lu et al. US 2020/0167155
Claim 29
The operating method of claim 21, wherein the overflow alarm is generated when a stack signature is detected while the stack frame is being stored in the first memory area.
Boucher teaches keep a profile tracker/signature of number of time stack’s remaining memory was insufficient. p0033
Claim 24 is rejected under 35 U.S.C. 103 as being unpatentable over Boucher US 2004/0019744 in view of Lu 2020/0167155 and Rao US 11/042,432
17/994,163
Boucher US 2004/0019744 in view of Lu et al. US 2020/0167155 and Rao US 11/042,432
Claim 24
The operating method of claim 21, wherein the first memory area comprises a red zone in a preset range and the memory device generates the overflow alarm when the stack frame enters into the red zone.
Rao teaches setting zoon with memory. (see Rao col. 2, lines 1-20)
It would have been obvious at the time of the invention for a person ordinary skill in the art (POSITA) to include Rao’s teaching with method of Boucher in order collection health factor within the memory.
Conclusion
THIS ACTION IS MADE FINAL. 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.
Contact Information
Any inquiry concerning this communication or earlier communications from the examiner should be directed to PENG KE whose telephone number is (571)272-4062. The examiner can normally be reached M-F 6:30-5:00.
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, Kevin Young can be reached at (571) 270-3180. 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.
PENG KE
Primary Examiner
Art Unit 2194
/PENG KE/Primary Examiner, Art Unit 2194