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 .
Continued Examination
A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on 12/15/25 has been entered.
Response to Amendment
This Office action is in response to Applicant' s communication filed 12/15/25 in response to the Office action dated 10/27/25. Claims 1 and 9 have been amended. Claims 1, 3-9, and 11-19 are pending in this application.
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 of this title, 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, 3-7, 9, and 11-15 are rejected under 35 U.S.C 103 as being unpatentable over Olgiati (US 9858199 B1) in view of Loh (US 20200183848 A1), and further in view of Lin et al. (US 20070106835 A1), hereinafter Lin.
Regarding claim 1, Olgiati teaches a method of creating an executable file using a linker script (Col. 13, lines 47-58, processes are embodied in code modules), comprising:
assigning a first address range and a second address range to a same physical memory device (Col. 5, line 63 – Col. 6, line 3; Fig. 3, virtual address spaces 300, 302 are mapped to the same physical memory 304),
wherein the first address range and the second address range are accessible by a same processing unit (Col. 3, line 60 – Col. 4, line 10; Col. 5, line 63 – Col. 6, line 3; Figs. 1 and 3, virtual address spaces 300, 302 are used by processes executed on a processor 102),
such that a region of the physical memory device is accessible using addresses within the first address range and using addresses within the second address range (Col. 6, lines 16-35; Fig. 3, shared physical memory region 316 is accessed by first shared virtual address region 310 of first virtual address space 300 and second shared virtual address region 312 of second virtual address space 302);
allocating a first portion of the physical memory device to the first address range for storage (Col. 5, line 63 – Col. 6, line 15; Fig. 3, allocating to first virtual address space 300 which maps to portions of physical memory 304); and
creating the executable file (Col. 13, lines 47-58, code modules).
Olgiati does not explicitly teach the first address range for storage of instructions, starting at a first starting address, determining a size of the first portion, referred to as an offset; adding the offset to a starting address of the second address range to define a new second address of the second address range; allocating data in the physical memory device to the second address range starting at the new second address of the second address range; allocates instructions starting at the first starting address in the first address range and data starting at the new second address in the second address range.
However, Loh teaches a first address range starting at a first starting address (Paragraph 31; Fig. 1, region 140 starting at address 142 [first starting address]),
determining a size of the first portion, referred to as an offset (Paragraphs 35, 48; Fig. 1, cache controller implements region parameters 150, which includes the size parameter 158 (S bytes) of the region 140);
adding the offset to a starting address of the second address range to define a new second address of the second address range (Paragraph 37; Fig. 1, adding S bytes [offset] to address 142 [starting second address] obtains the starting address [new second address] for the region after region 140);
allocating data in the physical memory device to the second address range starting at the new second address of the second address range (Paragraphs 31 and 33; Fig. 1, region after region 140 [second address range] stores data starting at address 142 + S bytes [new second address]); and
allocates starting at the first starting address in the first address range (Paragraph 31; Fig. 1, storing data in region 140 starting at address 142) and
data starting at the new second address in the second address range (Paragraphs 31 and 33; Fig. 1, storing data in region after region 140 starting at address 142 + S bytes).
Olgiati and Loh are analogous art because they are in the same field of endeavor, that being allocation of specific address spaces. It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of Olgiati to further include the address management according to the teachings of Loh. The motivation for doing so would have been to improve lookup operation speed (Loh, Paragraph 29).
Olgiati in view of Loh does not explicitly teach a first address range for storage of instructions, and allocates instructions in the first address range.
However, Lin teaches a first address range for storage of instructions (Paragraphs 21-22; Table 1, first address range 0x00000 – 0x0FFFF stores program code [instructions]), and
allocating instructions in the first address range (Paragraphs 21-22, allocating program codes [instructions] to the first address range 0x00000 – 0x0FFFF).
Olgiati, Loh and Lin are analogous art because they are in the same field of endeavor, that being allocation of specific address spaces. It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of Olgiati in view of Loh to further include the allocation/storage of instructions according to the teachings of Lin. The motivation for doing so would have been to reduce cost and increase access speed by storing both code/instructions and data into a single memory device (Lin, Paragraph 10).
Regarding claim 3, Olgiati in view of Loh, further in view of Lin teaches the method of claim 1, wherein the linker script (Olgiati, Col. 13, lines 47-58, code modules)
determines which functions are to be stored in the first portion of the physical memory device (Lin, Paragraphs 20, 31; Fig. 3, controller 315 accesses the memory device and determines to prevent storing parameters and store only program code into the program code block [first portion]).
Regarding claim 4, Olgiati in view of Loh teaches the method of claim 1, but does not explicitly teach wherein the first address range is designated as read only.
However, Lin teaches wherein the first address range is designated as read only (Paragraph 22; Table 1, first address range 0x00000 – 0x0FFFF containing program code is read-only).
Olgiati, Loh and Lin are analogous art because they are in the same field of endeavor, that being allocation of specific address spaces. It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of Olgiati in view of Loh to further include the read-only address range according to the teachings of Lin. The motivation for doing so would have been to reduce the cost of the memory system by emulating the function of an external read-only memory (Lin, Paragraphs 5 and 10).
Regarding claim 5, Olgiati in view of Loh, further in view of Lin teaches the method of claim 1, wherein the second address range is designated as readable and writable (Lin, Paragraph 22; Table 1, Fig. 3, second address range 0x10000 – 0x17FFF is read and written by MCU 114).
Regarding claim 6, Olgiati in view of Loh, further in view of Lin teaches a system comprising: a processing unit (Loh, Paragraphs 31 and 40, processing units execute the embodiment of data storage 100);
a nonvolatile memory device (Loh, Paragraphs 31-32; Fig. 1, system memory 110 includes one or more hard disk drives and solid-state disks [non-volatile memory]);
and the physical memory device configured by executing the executable file created using the method of claim 1 (Olgiati, Col. 3, lines 60-65; Col. 13, lines 47-58; Fig. 1, physical memory 106 is managed by code modules [executable files]);
wherein the processing unit uses the first address range to access instructions and the second address range to access data (Lin, Paragraphs 19, 22; Table 1, Fig. 3, MCU 114 (Micro Computer Unit) [processing unit] reads program codes [instructions] in first address range 0x00000 – 0x0FFFF and reads/writes data in second address range 0x18000 – 0x1FFFF).
Regarding claim 7, Olgiati in view of Loh, further in view of Lin teaches the system of claim 6, wherein the nonvolatile memory device contains instructions (Lin, Paragraph 22; Table 1, Fig. 3, embedded non-volatile memory 312 stores program codes [instructions] at address range 0x00000 – 0x0FFFF).
Regarding claim 9, Olgiati teaches a method of creating an executable file using a linker script (Col. 13, lines 47-58, processes are embodied in code modules), comprising:
assigning a first address range and a second address range to a same physical memory device (Col. 5, line 63 – Col. 6, line 3; Fig. 3, virtual address spaces 300, 302 are mapped to the same physical memory 304),
wherein the first address range and the second address range are accessible by a same processing unit (Col. 3, line 60 – Col. 4, line 10; Col. 5, line 63 – Col. 6, line 3; Figs. 1 and 3, virtual address spaces 300, 302 are used by processes executed on a processor 102),
such that a region of the physical memory device is accessible using addresses within the first address range and using addresses within the second address range (Col. 6, lines 16-35; Fig. 3, shared physical memory region 316 is accessed by first shared virtual address region 310 of first virtual address space 300 and second shared virtual address region 312 of second virtual address space 302);
allocating a first portion of the physical memory device to the second address range for storage (Col. 5, line 63 – Col. 6, line 15; Fig. 3, second virtual address space 302 maps to portions of physical memory 304); and
creating the executable file (Col. 13, lines 47-58, code modules).
Olgiati does not explicitly teach the second address range for storage of a first portion of data, starting at a second starting address; determining a size of the first portion of data, referred to as a first offset; adding the first offset to a starting address of the first address range to define a new first address of the first address range; allocating a second portion of the physical memory device to the first address range for storage of instructions, starting at the new first address; determining a size of the instructions, referred to as a second offset; adding the second offset to an ending address of the first portion of data to define a new second address; allocating a second portion of data to the second address range starting at the new second address of the second address range; and allocates instructions starting at the new first address, a first portion of data starting at the second starting address and a second portion of data starting at the new second address.
However, Loh teaches a second address range for storage of a first portion of data, starting at a second starting address (Paragraphs 61-62; Fig. 5, region 126 [part of second address range] stores data [first portion of data] starting at address 142 [second starting address]);
determining a size of the first portion of data, referred to as a first offset (Paragraphs 48, 50, 62; Fig. 5, cache controller implements the functionality of [determines] region parameters 150, which include the size 158 (S bytes) of the region 126);
adding the first offset to a starting address of the first address range to define a new first address of the first address range (Paragraphs 61-62; Fig. 5, adding S bytes [first offset] to address 142 [starting first address] obtains the starting address [new first address] of added region 526 [first address range]);
allocating a second portion of the physical memory device to the first address range for storage, starting at the new first address (Paragraphs 61-62; Fig. 5, region 526 [second portion of the physical device] stores data starting at address 142 + S bytes [new first address]);
determining a size of the instructions, referred to as a second offset (Paragraphs 48, 50, 62; Fig. 5, cache controller implements the functionality of [determines] region parameters 150, which include the size 158 (T bytes) of the region 526);
adding the second offset to an ending address of the first portion of data to define a new second address (Paragraphs 61-62; Fig. 5, adding T bytes [second offset] to address 142 + S bytes [ending address of first portion] obtains the starting address [new second address] for the region after added region 526);
allocating a second portion of data to the second address range starting at the new second address of the second address range (Paragraphs 61-62; Fig. 5, region after added region 526 stores data [second portion of data] starting at address 142 + S + T bytes [new second address]); and
allocates starting at the new first address (Paragraphs 61-62; Fig. 5, storing data starting at address 142 + S bytes),
a first portion of data starting at the second starting address (Paragraphs 61-62; Fig. 5, storing [first] data starting at address 142),
and a second portion of data starting at the new second address (Paragraphs 61-62; Fig. 5, storing [second] data starting at address 142 + S + T bytes).
Olgiati and Loh are analogous art because they are in the same field of endeavor, that being allocation of specific address spaces. It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of Olgiati to further include the address management according to the teachings of Loh. The motivation for doing so would have been to improve lookup operation speed (Loh, Paragraph 29).
Olgiati in view of Loh does not explicitly teach a first address range for storage of instructions and allocates instructions starting at the new first address.
However, Lin teaches a first address range for storage of instructions (Paragraphs 21-22; Table 1, first address range 0x00000 – 0x0FFFF stores program code [instructions]), and
allocates instructions starting at the new first address (Paragraphs 21-22, allocating program codes [instructions] to the first address range starting at 0x00000).
Olgiati, Loh and Lin are analogous art because they are in the same field of endeavor, that being allocation of specific address spaces. It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of Olgiati in view of Loh to further include the allocation/storage of instructions according to the teachings of Lin. The motivation for doing so would have been to reduce cost and increase access speed by storing both code/instructions and data into a single memory device (Lin, Paragraph 10).
Regarding claim 11, Olgiati in view of Loh, further in view of Lin teaches the method of claim 9, wherein the linker script (Olgiati, Col. 13, lines 47-58, code modules)
determines which functions are to be stored in the first portion of the physical memory device (Lin, Paragraphs 20, 31; Fig. 3, controller 315 accesses the memory device and determines to prevent storing parameters and store only program code into the program code block [first portion]).
Regarding claim 12, Olgiati in view of Loh teaches the method of claim 9, but does not explicitly teach wherein the first address range is designated as read only.
However, Lin teaches wherein the first address range is designated as read only (Paragraph 22; Table 1, first address range 0x000000 – 0x0FFFF containing program code is read-only).
Olgiati, Loh, and Lin are analogous art because they are in the same field of endeavor, that being allocation of specific address spaces. It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of Olgiati in view of Loh to further include the read-only address range according to the teachings of Lin. The motivation for doing so would have been to reduce the cost of the memory system by emulating the function of an external read-only memory (Lin, Paragraphs 5 and 10).
Regarding claim 13, Olgiati in view of Loh, further in view of Lin teaches the method of claim 9, wherein the second address range is designated as readable and writable (Lin, Paragraph 22; Table 1, second address range 0x100000 – 0x17FFF is read and written by MCU 114).
Regarding claim 14, Olgiati in view of Loh, further in view of Lin teaches a system comprising: a processing unit (Loh, Paragraphs 31 and 40, processing units execute the embodiment of data storage 100);
a nonvolatile memory device (Loh, Paragraphs 31-32; Fig. 1, system memory 110 includes one or more hard disk drives and solid-state disks [non-volatile memory]);
and the physical memory device configured by executing the executable file created using the method of claim 9 (Olgiati, Col. 3, lines 60-65; Col. 13, lines 47-58; Fig. 1, physical memory 106 is managed by code modules [executable files]);
wherein the processing unit uses the first address range to access instructions and the second address range to access data (Lin, Paragraphs 19, 22; Table 1, Fig. 3, MCU 114 (Micro Computer Unit) [processing unit] reads program codes [instructions] in first address range 0x00000 – 0x0FFFF and reads/writes data in second address range 0x18000 – 0x1FFFF).
Regarding claim 15, Olgiati in view of Loh, further in view of Lin teaches the system of claim 14, wherein the nonvolatile memory device contains instructions (Lin, Paragraph 22; Table 1, Fig. 3, embedded non-volatile memory 312 stores program codes [instructions] at address range 0x00000 – 0x0FFFF).
Claims 8 and 16 are rejected under 35 U.S.C 103 as being unpatentable over Olgiati in view of Loh, further in view of Lin as applied to claims 6 and 14 above, and further in view of Li (US 20210034364 A1).
Regarding claim 8, Olgiati in view of Loh, further in view of Lin teaches the system of claim 6, but does not explicitly teach wherein the processing unit comprises separate buses for accessing instructions and data.
However, Li teaches wherein the processing unit comprises separate buses for accessing instructions and data (Paragraph 28; Fig. 1, processor core 110 uses bus 140 to store [access] only instruction information in instruction memory 120 and bus 150 to store only data information in data memory 130).
Olgiati, Loh, Lin, and Li are analogous art because they are in the same field of endeavor, that being memory segmentation and allocation. It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to have modified the system of Olgiati in view of Loh, further in view of Lin to further include the separate buses for accessing instructions and data according to the teachings of Li. The motivation for doing so would have been to allow the fetching of instructions and data in the same clock cycle, increasing the execution efficiency of the processor (Li, Paragraphs 103-104).
Regarding claim 16, Olgiati in view of Loh, further in view of Lin teaches the system of claim 14, but does not explicitly teach wherein the processing unit comprises separate buses for accessing instructions and data.
However, Li teaches wherein the processing unit comprises separate buses for accessing instructions and data (Paragraph 28; Fig. 1, processor core 110 uses bus 140 to store [access] only instruction information in instruction memory 120 and bus 150 to store only data information in data memory 130).
Olgiati, Loh, Lin, and Li are analogous art because they are in the same field of endeavor, that being memory segmentation and allocation. It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to have modified the system of Olgiati in view of Loh, further in view of Lin to further include the separate buses for accessing instructions and data according to the teachings of Li. The motivation for doing so would have been to allow the fetching of instructions and data in the same clock cycle, increasing the execution efficiency of the processor (Li, Paragraphs 103-104).
Claim 17 is rejected under 35 U.S.C 103 as being unpatentable over Olgiati in view of Loh, further in view of Lin as applied to claim 14 above, and further in view of Ramanujan et al (US 20130268728 A1), hereinafter Ramanujan.
Regarding claim 17, Olgiati in view of Loh, further in view of Lin teaches the system of claim 14 and the second portion comprises data buffers (Loh, Paragraph 48; cache 330 includes buffers storing data).
Olgiati in view of Loh, further in view of Lin does not explicitly teach wherein the first portion of data comprises secure data and other information.
However, Ramanujan teaches wherein the first portion of data comprises secure data and other information (Paragraphs 91, 116; Fig. 2, secure data and other information is stored in NVRAM 173).
Olgiati, Loh, Lin, and Ramanujan are analogous art because they are in the same field of endeavor, that being allocation of specific address spaces. It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to have modified the system of Olgiati in view of Loh, further in view of Lin to further include the secure data and other information according to the teachings of Ramanujan. The motivation for doing so would have been to store and protect sensitive system information (Ramanujan, Paragraph 91).
Claims 18-19 are rejected under 35 U.S.C 103 as being unpatentable over Olgiati in view of Loh, further in view of Lin as applied to claims 7 and 14 above, and further in view of Chitnis et al. (US 20240037028 A1), hereinafter Chitnis.
Regarding claim 18, Olgiati in view of Loh, further in view of Lin teaches the system of claim 7, the nonvolatile memory device (Loh, Paragraphs 31-32; Fig. 1, system memory 110 includes one or more hard disk drives and solid-state disks [non-volatile memory]), and
the physical memory device (Olgiati, Col. 3, lines 60-65; Fig. 1, physical memory 106).
Olgiati in view of Loh, further in view of Lin does not explicitly teach wherein the processing unit copies instructions from the nonvolatile memory device to the region in the physical memory device by accessing the region using the second address range and executes the instructions that were copied into the region by accessing the region using the first address range.
However, Chitnis teaches wherein the processing unit copies instructions from the nonvolatile memory device to the region in the physical memory device by accessing the region using the second address range (Paragraphs 36, 48; Figs. 3 and 5, step 340, the compiler receives shared code [instructions] and stores only one copy of the shared code within shared address space 504 [region] which is accessed by CPU2 load [second] address range 508)
and executes the instructions that were copied into the region by accessing the region using the first address range (Paragraphs 37, 48; Fig. 5, executing an application (including shared code [instructions]) by accessing the shared code stored in shared address space 504 [region] using CPU1 load [first] address range 506).
Olgiati, Loh, Lin, and Chitnis are analogous art because they are in the same field of endeavor, that being allocation of specific address spaces. It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to have modified the system of Olgiati in view of Loh, further in view of Lin to further include the copying of instructions via the second address range and the execution of instructions via the first address range according to the teachings of Chitnis. The motivation for doing so would have been to save memory space by storing common code only once (Chitnis, Paragraph 48).
Regarding claim 19, Olgiati in view of Loh, further in view of Lin teaches the system of claim 14, the nonvolatile memory device (Loh, Paragraphs 31-32; Fig. 1, system memory 110 includes one or more hard disk drives and solid-state disks [non-volatile memory]), and
the physical memory device (Olgiati, Col. 3, lines 60-65; Fig. 1, physical memory 106).
Olgiati in view of Loh, further in view of Lin does not explicitly teach wherein the processing unit copies instructions from the nonvolatile memory device to the region in the physical memory device by accessing the region using the second address range and executes the instructions that were copied into the region by accessing the region using the first address range.
However, Chitnis teaches wherein the processing unit copies instructions from the nonvolatile memory device to the region in the physical memory device by accessing the region using the second address range (Paragraphs 36, 48; Figs. 3 and 5, step 340, the compiler receives shared code [instructions] and stores only one copy of the shared code within shared address space 504 [region] which is accessed by CPU2 load [second] address range 508)
and executes the instructions that were copied into the region by accessing the region using the first address range (Paragraphs 37, 48; Fig. 5, executing an application (including shared code [instructions]) by accessing the shared code stored in shared address space 504 [region] using CPU1 load [first] address range 506).
Olgiati, Loh, Lin, and Chitnis are analogous art because they are in the same field of endeavor, that being allocation of specific address spaces. It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to have modified the system of Olgiati in view of Loh, further in view of Lin to further include the copying of instructions via the second address range and the execution of instructions via the first address range according to the teachings of Chitnis. The motivation for doing so would have been to save memory space by storing common code only once (Chitnis, Paragraph 48).
Response to Arguments
Applicant’s arguments (see pages 6-7 of the remarks) filed 12/15/25, with respect to the rejections of claims 1 and 9 under 35 U.S.C 103 have been fully considered and are persuasive. Therefore, the rejection has been withdrawn. However, upon further consideration, a new ground(s) of rejection is made in view of Olgiati, Loh, and Lin.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Jason Pinga whose telephone number is (571) 272-2620. The examiner can normally be reached on M-F 8:30am-6pm ET.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s
supervisor, Arpan Savla, can be reached on (571) 272-1077. 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.
/J.M.P./Examiner, Art Unit 2137
/TRACY A WARREN/Primary Examiner, Art Unit 2137