DETAILED ACTION
Claims 1-20 are pending in this application.
Claims 1-20 are rejected.
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
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-7, 9-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Noel et al. (U.S. PGPub No. 2002/0016891) in view of Menczak et al. (U.S. PGPub No. 2007/0283124) in view of Ravindranath et al. (U.S. PGPub No. 2010/0235603).
Claim 1
Noel (2002/0016891) teaches:
An interface to be associated with a plurality of applications,
the interface to enable specifications of different memory sizes associated with different processes for the plurality of applications and […] P. 0269 A shared memory API is a set of routines that can be called by user mode applications and maps shared memory into the application's address space; P. 0151,0153 each fragment has a particular allocation size
[…] wherein at least one part of the virtual memory is associated with a mapping to one part of a physical memory that is comprised of different allocated sizes, P. 0274 page tables keep track of where each virtual page is located in physical memory; P. 0267 virtual size may be the same size or larger than the physical size
Noel does not explicitly teach enabling equal allocation of virtual memory to processes, and a mapping between virtual and physical addresses being based on the plurality of requests associated with a process.
Menczak (2007/0283124) teaches:
enable specifications of different memory sizes associated with different processes for the plurality of applications and P. 0020 each application corresponds to a group of instructions; P. 0010 techniques employed for two applications may employ different page sizes; P. 0101 one application may be using a smaller page size than the page sized used for memory allocated to other applications; P. 0026 memory management software may be used to manage allocation of physical memory (such as RAM 140 or disk storage 150) to various processes executing on processor 110
to enable an equal allocation of virtual memory for the different memory sizes […] P. 0041 a programmer may direct the operating system to use the largest available page size for a given application’s translation technique; P. 0107 a block of virtual memory may be allocated to the process, or thread
wherein at least one part of the virtual memory is associated with a mapping to one part of a physical memory that is comprised of different allocated sizes, P. 0027-28 there may be a hierarchy of page tables mapping a virtual address to a physical page of memory; P. 0074 may use a different page size for the virtual and physical address space
wherein the mapping is associated with at least one process of the different processes based on a plurality of requests associated with the different processes, and P. 0040 a memory virtualization technique may be selected based on the number and location of frequently executed functions or subroutines in an application
wherein a translation for the mapping occurs using a start address and the maximum of the different memory sizes. P. 0026-27 a page table may identify the physical location of the start of a relevant page when translating a virtual address to a physical address; P. 0052 the number of high order bits of the virtual address used to determine the corresponding page of physical memory is dependent on the size of pages
It would have been obvious to a person with ordinary skill in the art at the effective filing date of the application to include the invention of Noel with enabling equal allocation of virtual memory to processes, and a mapping between virtual and physical addresses being based on the plurality of requests associated with a process taught by Menczak
The motivation being improvement in performance compared to the use of a single translation technique (See P. 0057)
The systems of Noel and Menczak do not explicitly teach enabling equal allocation of memory based on the maximum of the different requested sizes.
Ravindranath (2010/0235603) teaches:
enable specifications of different memory sizes associated with different processes for the plurality of applications and to enable an equal allocation of virtual memory for the different memory sizes based on a maximum of the different memory sizes, P. 0014 an allocator, which requests blocks of memory of a specified size, may be any memory requesting program, such as a single programmatic subroutine [process]; P. 0021 memory manager 102 may divide the memory 106 into regions 110 of a fixed size, the fixed size configured to be greater than the largest allocation size request to be issued
It would have been obvious to a person with ordinary skill in the art at the effective filing date of the application to include the invention of Noel and Menczak with enabling equal allocation of memory based on the maximum of the different requested sizes taught by Ravindranath
The motivation being to limit memory fragmentation (see Ravindranath P. 0015)
The systems of Noel, Menczak and Ravindranath are analogous because they are from the “same field of endeavor” and from the same “problem solving area.” Namely, they are both from the field of memory systems.
Therefore it would have been obvious to combine Noel and Menczak with Ravindranath to obtain the invention as recited in claims 1-8.
Claim 2
Menczak (2007/0283124) teaches:
The interface of claim 1, wherein the plurality of requests is associated with a first collective call, for the at least one process, using first arguments associated with a first one of the different memory sizes, and P. 0091 an application may be using the largest allowable page size when requesting translation table look-ups; P. 0085 application or thread requesting access to the particular virtual address requires a look up
wherein the plurality of requests is further associated with a second collective call, for the at least one process, using second arguments associated with a second one of the different memory sizes. P. 0091 the operating system may change the page size for an application at different points in its execution; P. 0085 application or thread requesting access to the particular virtual address requires a look up
The rationale to combine Noel with Menczak for claim 1 equally applies for dependent claim 2.
Claim 3
Noel (2002/0016891) teaches:
The interface of claim 1, wherein different parts of the physical memory are of different sizes and comprises the one part of the physical memory, and P. 0265 it is possible to dynamically change the relative sizes of partitions; P. 0060 the computer system is composed of multiple partitions; P. 0266 Memory can be owned by a partition, in which case the memory is used as private memory by the operating system or console software running within the partition
wherein the different parts of the physical memory are part of the mapping with respect to different parts of the virtual memory that comprises the one part of the virtual memory. P. 0274 mapping information translates virtual addresses to physical addresses; P. 0175 private memory may have its own virtual address space
Claim 4
Menczak (2007/0283124) teaches:
The interface of claim 1, wherein the interface supports accumulation of the specifications of the different memory sizes and enables the equal allocation of the virtual memory on behalf of the different processes. P. 0041 a programmer may direct the operating system to use the largest available page size for a given application’s translation technique; P. 0044 Different address translation techniques may also be applied to different components of a single software application, such as to different sub-routines, tasks, or functions of a user application
The rationale to combine Noel with Menczak for claim 1 equally applies for dependent claim 4.
Claim 5
Menczak (2007/0283124) teaches:
The interface of claim 1, wherein the equal allocation of virtual memory is to use contiguous parts of the virtual memory for different requests, of the plurality of requests, in different collective calls associated with the at least one process. P. 0039 a particular memory virtualization technique may be employed based on a range of virtual or physical memory addresses or on the size of a data structure accessed by an application; P. 0051 an application requests access a particular virtual memory address, the virtual memory address is compared to a range of virtual memory address to determine the appropriate translation technique; P. 0127 implement memory management routines for allocating various blocks of system memory 1210 or disk storage 1260 to an application executing on processor 1270
The rationale to combine Noel with Menczak for claim 1 equally applies for dependent claim 5.
Claim 6
Menczak (2007/0283124) teaches:
The interface of claim 1, wherein address translation is used to translate virtual addresses of the virtual memory to physical address of the physical memory at a destination process of the different processes, P. 0044 Different address translation techniques may also be applied to different components of a single software application, such as to different sub-routines, tasks, or functions of a user application; P. 0107 a block of virtual memory may be allocated to the process, or thread
wherein the address translation enables the at least one part of the virtual memory to be part of the mapping to the one part of a physical memory. P. 0039 a particular memory virtualization technique may be employed based on a range of virtual or physical memory addresses or on the size of a data structure accessed by an application; P. 0026-27 a page table may identify the physical location of the start of a relevant page when translating a virtual address to a physical address
The rationale to combine Noel with Menczak for claim 1 equally applies for dependent claim 6.
Claim 7
Menczak (2007/0283124) teaches:
The interface of claim 1, wherein memory registration is used to enable the one part of the virtual memory to be part of the mapping to the one part of a physical memory, and wherein memory region (MR) keys are provided to confirm the mapping. P. 0114 memory may associate the unique identifier of the process with the memory allocated to it; P. 0115-116 a process accesses memory using a token, corresponding to the process’s unique identifier. The controller may compare the token in the request with the identifier it has associated with the address range of the request
The rationale to combine Noel with Menczak for claim 1 equally applies for dependent claim 7.
Claim 9
Noel (2002/0016891) teaches:
A system comprising: a plurality of circuits to support an interface with one or more applications and with different processes for the one or more applications, the interface to receive specifications of different memory sizes associated with the different processes and […] P. 0269 A shared memory API is a set of routines that can be called by user mode applications and maps shared memory into the application's address space; P. 0151,0153 each fragment has a particular allocation size; Claim 1 I/O circuitry
[…] wherein at least one part of the virtual memory is in a mapping with respect to one part of a physical memory that is of different allocated sizes, P. 0274 page tables keep track of where each virtual page is located in physical memory; P. 0267 virtual size may be the same size or larger than the physical size
Noel does not explicitly teach enabling allocation of virtual memory to processes, and a mapping between virtual and physical addresses being based on the plurality of requests associated with a process.
Menczak (2007/0283124) teaches:
receive specifications of different memory sizes associated with the different processes and P. 0020 each application corresponds to a group of instructions; P. 0010 techniques employed for two applications may employ different page sizes; P. 0101 one application may be using a smaller page size than the page sized used for memory allocated to other applications; P. 0026 memory management software may be used to manage allocation of physical memory (such as RAM 140 or disk storage 150) to various processes executing on processor 110
to enable an allocation of virtual memory for to the different memory sizes […] P. 0041 a programmer may direct the operating system to use the largest available page size for a given application’s translation technique; P. 0107 a block of virtual memory may be allocated to the process, or thread
wherein at least one part of the virtual memory is in a mapping with respect to one part of a physical memory that is of different allocated sizes, P. 0027-28 there may be a hierarchy of page tables mapping a virtual address to a physical page of memory; P. 0074 may use a different page size for the virtual and physical address space
wherein the mapping is associated with at least one process of the different processes, and P. 0040 a memory virtualization technique may be selected based on the number and location of frequently executed functions or subroutines in an application
wherein a translation for the mapping occurs using a start address and the maximum of the different memory sizes. P. 0026-27 a page table may identify the physical location of the start of a relevant page when translating a virtual address to a physical address; P. 0052 the number of high order bits of the virtual address used to determine the corresponding page of physical memory is dependent on the size of pages
It would have been obvious to a person with ordinary skill in the art at the effective filing date of the application to include the invention of Noel with enabling equal allocation of virtual memory to processes, and a mapping between virtual and physical addresses being based on the plurality of requests associated with a process taught by Menczak
The motivation being improvement in performance compared to the use of a single translation technique (See P. 0057)
The systems of Noel and Menczak do not explicitly teach enabling equal allocation of memory based on the maximum of the different requested sizes.
Ravindranath (2010/0235603) teaches:
to enable an equal allocation of virtual memory for the different memory sizes based on a maximum of the different memory sizes, P. 0014 an allocator, which requests blocks of memory of a specified size, may be any memory requesting program, such as a single programmatic subroutine [process]; P. 0021 memory manager 102 may divide the memory 106 into regions 110 of a fixed size, the fixed size configured to be greater than the largest allocation size request to be issued
It would have been obvious to a person with ordinary skill in the art at the effective filing date of the application to include the invention of Noel and Menczak with enabling equal allocation of memory based on the maximum of the different requested sizes taught by Ravindranath
The motivation being to limit memory fragmentation (see Ravindranath P. 0015)
The systems of Noel, Menczak and Ravindranath are analogous because they are from the “same field of endeavor” and from the same “problem solving area.” Namely, they are both from the field of memory systems.
Therefore it would have been obvious to combine Noel and Menczak with Ravindranath to obtain the invention as recited in claims 9-13.
Claim 10
Menczak (2007/0283124) teaches:
The system of claim 9, wherein the different requests are associated with a first collective call, for the at least one process, using first arguments associated with a first one of the different memory sizes, and P. 0091 an application may be using the largest allowable page size when requesting translation table look-ups; P. 0085 application or thread requesting access to the particular virtual address requires a look up
wherein the different requests is further associated with a second collective call, for the at least one process, using second arguments associated with a second one of the different memory sizes. P. 0091 the operating system may change the page size for an application at different points in its execution; P. 0085 application or thread requesting access to the particular virtual address requires a look up
The rationale to combine Noel with Menczak for claim 9 equally applies for dependent claim 10.
Claim 11
Menczak (2007/0283124) teaches:
The system of claim 9, wherein the interface is adapted for accumulation of the specifications of the different memory sizes and enables the equal allocation of the virtual memory on behalf of the different processes. P. 0041 a programmer may direct the operating system to use the largest available page size for a given application’s translation technique; P. 0044 Different address translation techniques may also be applied to different components of a single software application, such as to different sub-routines, tasks, or functions of a user application
The rationale to combine Noel with Menczak for claim 9 equally applies for dependent claim 11.
Claim 12
Menczak (2007/0283124) teaches:
The system of claim 9, wherein the equal allocation of virtual memory is to use contiguous parts of the virtual memory for different requests in different collective calls associated with the at least one process. P. 0039 a particular memory virtualization technique may be employed based on a range of virtual or physical memory addresses or on the size of a data structure accessed by an application; P. 0051 an application requests access a particular virtual memory address, the virtual memory address is compared to a range of virtual memory address to determine the appropriate translation technique; P. 0127 implement memory management routines for allocating various blocks of system memory 1210 or disk storage 1260 to an application executing on processor 1270
The rationale to combine Noel with Menczak for claim 9 equally applies for dependent claim 12.
Claim 13
Menczak (2007/0283124) teaches:
The system of claim 9, wherein address translation is used to translate virtual addresses of the virtual memory to physical address of the physical memory at a destination process of the different processes, P. 0044 Different address translation techniques may also be applied to different components of a single software application, such as to different sub-routines, tasks, or functions of a user application; P. 0107 a block of virtual memory may be allocated to the process, or thread
wherein the address translation enables the at least one part of the virtual memory to be part of the mapping to the one part of a physical memory. P. 0039 a particular memory virtualization technique may be employed based on a range of virtual or physical memory addresses or on the size of a data structure accessed by an application; P. 0026-27 a page table may identify the physical location of the start of a relevant page when translating a virtual address to a physical address
The rationale to combine Noel with Menczak for claim 9 equally applies for dependent claim 13.
Claim 14
Noel (2002/0016891) teaches:
A system comprising: at least one circuit to perform at least one process of a plurality of different processes for one or more applications and to use one part of a virtual memory, based on plurality of requests associated with the plurality of different processes, […] P. 0269 A shared memory API is a set of routines that can be called by user mode applications and maps shared memory into the application's address space; P. 0151,0153 each fragment has a particular allocation size; Claim 1 I/O circuitry
[…] wherein the one part of the virtual memory is in a mapping with respect to one part of a physical memory that is of different allocated sizes, and P. 0274 page tables keep track of where each virtual page is located in physical memory; P. 0267 virtual size may be the same size or larger than the physical size
Noel does not explicitly teach enabling equal allocation of virtual memory to processes, and a mapping between virtual and physical addresses being based on the plurality of requests associated with a process.
Menczak (2007/0283124) teaches:
perform at least one process of a plurality of different processes for one or more applications and to use one part of a virtual memory, based on plurality of requests associated with the plurality of different processes, P. 0020 each application corresponds to a group of instructions; P. 0010 techniques employed for two applications may employ different page sizes; P. 0101 one application may be using a smaller page size than the page sized used for memory allocated to other applications; P. 0026 memory management software may be used to manage allocation of physical memory (such as RAM 140 or disk storage 150) to various processes executing on processor 110
the virtual memory comprising a plurality of parts of equal allocations […] P. 0041 a programmer may direct the operating system to use the largest available page size for a given application’s translation technique; P. 0107 a block of virtual memory may be allocated to the process, or thread
wherein the one part of the virtual memory is in a mapping with respect to one part of a physical memory that is of different allocated sizes, and P. 0040 a memory virtualization technique may be selected based on the number and location of frequently executed functions or subroutines in an application
wherein a translation for the mapping occurs using a start address and the maximum of the different memory sizes. P. 0026-27 a page table may identify the physical location of the start of a relevant page when translating a virtual address to a physical address; P. 0052 the number of high order bits of the virtual address used to determine the corresponding page of physical memory is dependent on the size of pages
It would have been obvious to a person with ordinary skill in the art at the effective filing date of the application to include the invention of Noel with enabling equal allocation of virtual memory to processes, and a mapping between virtual and physical addresses being based on the plurality of requests associated with a process taught by Menczak
The motivation being improvement in performance compared to the use of a single translation technique (See P. 0057)
The systems of Noel and Menczak do not explicitly teach enabling equal allocation of memory based on the maximum of the different requested sizes.
Ravindranath (2010/0235603) teaches:
the virtual memory comprising a plurality of parts of equal allocations based on a maximum of different memory sizes for the virtual memory provided for the different memory sizes, P. 0014 an allocator, which requests blocks of memory of a specified size, may be any memory requesting program, such as a single programmatic subroutine [process]; P. 0021 memory manager 102 may divide the memory 106 into regions 110 of a fixed size, the fixed size configured to be greater than the largest allocation size request to be issued
It would have been obvious to a person with ordinary skill in the art at the effective filing date of the application to include the invention of Noel and Menczak with enabling equal allocation of memory based on the maximum of the different requested sizes taught by Ravindranath
The motivation being to limit memory fragmentation (see Ravindranath P. 0015)
The systems of Noel, Menczak and Ravindranath are analogous because they are from the “same field of endeavor” and from the same “problem solving area.” Namely, they are both from the field of memory systems.
Therefore it would have been obvious to combine Noel and Menczak with Ravindranath to obtain the invention as recited in claims 14-17.
Claim 15
Noel (2002/0016891) teaches:
The system of claim 14, wherein different parts of the physical memory are of different sizes and comprises the one part of the physical memory, and P. 0265 it is possible to dynamically change the relative sizes of partitions; P. 0060 the computer system is composed of multiple partitions; P. 0266 Memory can be owned by a partition, in which case the memory is used as private memory by the operating system or console software running within the partition
wherein the different parts of the physical memory are part of the mapping with respect to different parts of the virtual memory that comprises the one part of the virtual memory. P. 0265 it is possible to dynamically change the relative sizes of partitions; P. 0060 the computer system is composed of multiple partitions; P. 0266 Memory can be owned by a partition, in which case the memory is used as private memory by the operating system or console software running within the partition
Claim 16
Menczak (2007/0283124) teaches:
The system of claim 14, wherein the equal allocation of virtual memory is to us contiguous parts of the virtual memory for different requests, of the plurality of requests, in different collective calls associated with the at least one process. P. 0039 a particular memory virtualization technique may be employed based on a range of virtual or physical memory addresses or on the size of a data structure accessed by an application; P. 0051 an application requests access a particular virtual memory address, the virtual memory address is compared to a range of virtual memory address to determine the appropriate translation technique; P. 0127 implement memory management routines for allocating various blocks of system memory 1210 or disk storage 1260 to an application executing on processor 1270
The rationale to combine Noel with Menczak for claim 14 equally applies for dependent claim 16.
Claim 17
Menczak (2007/0283124) teaches:
The system of claim 14, wherein address translation is used to translate virtual addresses of the virtual memory to physical address of the physical memory at a destination process of the different processes, P. 0044 Different address translation techniques may also be applied to different components of a single software application, such as to different sub-routines, tasks, or functions of a user application; P. 0107 a block of virtual memory may be allocated to the process, or thread
wherein the address translation enables the one part of the virtual memory to be part of the mapping to the one part of a physical memory. P. 0039 a particular memory virtualization technique may be employed based on a range of virtual or physical memory addresses or on the size of a data structure accessed by an application; P. 0026-27 a page table may identify the physical location of the start of a relevant page when translating a virtual address to a physical address
The rationale to combine Noel with Menczak for claim 14 equally applies for dependent claim 17.
Claim 18
Noel (2002/0016891) teaches:
A method for allocation of physical memory, comprising: providing an interface to be associated with a plurality of applications and to enable specifications of different memory sizes associated with different processes for the plurality of applications; […] P. 0269 A shared memory API is a set of routines that can be called by user mode applications and maps shared memory into the application's address space; P. 0151,0153 each fragment has a particular allocation size
[…] associating at least one part of the virtual memory with a mapping to one part of a physical memory that is comprised of different allocated sizes; and P. 0274 page tables keep track of where each virtual page is located in physical memory; P. 0267 virtual size may be the same size or larger than the physical size
Noel does not explicitly teach enabling allocation of virtual memory to processes based on a maximum of possible sizes, and a mapping between virtual and physical addresses being based on a start address and maximum memory size.
Menczak (2007/0283124) teaches:
enabling […] allocation of virtual memory for the different memory sizes based on a maximum of the different memory sizes; P. 0020 each application corresponds to a group of instructions; P. 0010 techniques employed for two applications may employ different page sizes; P. 0101 one application may be using a smaller page size than the page sized used for memory allocated to other applications; P. 0026 memory management software may be used to manage allocation of physical memory (such as RAM 140 or disk storage 150) to various processes executing on processor 110; P. 0041 a programmer may direct the operating system to use the largest available page size for a given application’s translation technique; P. 0107 a block of virtual memory may be allocated to the process, or thread
associating at least one part of the virtual memory with a mapping to one part of a physical memory that is comprised of different allocated sizes; and P. 0027-28 there may be a hierarchy of page tables mapping a virtual address to a physical page of memory; P. 0074 may use a different page size for the virtual and physical address space
associating the mapping with at least one process of the different processes, P. 0040 a memory virtualization technique may be selected based on the number and location of frequently executed functions or subroutines in an application
wherein a translation for the mapping occurs using a start address and the maximum of the different memory sizes. P. 0026-27 a page table may identify the physical location of the start of a relevant page when translating a virtual address to a physical address; P. 0052 the number of high order bits of the virtual address used to determine the corresponding page of physical memory is dependent on the size of pages
It would have been obvious to a person with ordinary skill in the art at the effective filing date of the application to include the invention of Noel with enabling allocation of virtual memory to processes based on a maximum of possible sizes, and a mapping between virtual and physical addresses being based on a start address and maximum memory size taught by Menczak
The motivation being improvement in performance compared to the use of a single translation technique (See P. 0057)
The systems of Noel and Menczak do not explicitly teach enabling equal allocation of memory based on the maximum of the different requested sizes.
Ravindranath (2010/0235603) teaches:
enabling equal allocation of virtual memory for the different memory sizes based on a maximum of the different memory sizes; P. 0014 an allocator, which requests blocks of memory of a specified size, may be any memory requesting program, such as a single programmatic subroutine [process]; P. 0021 memory manager 102 may divide the memory 106 into regions 110 of a fixed size, the fixed size configured to be greater than the largest allocation size request to be issued
It would have been obvious to a person with ordinary skill in the art at the effective filing date of the application to include the invention of Noel and Menczak with enabling equal allocation of memory based on the maximum of the different requested sizes taught by Ravindranath
The motivation being to limit memory fragmentation (see Ravindranath P. 0015)
The systems of Noel, Menczak and Ravindranath are analogous because they are from the “same field of endeavor” and from the same “problem solving area.” Namely, they are both from the field of memory systems.
Therefore it would have been obvious to combine Noel and Menczak with Ravindranath to obtain the invention as recited in claims 18-20.
Claim 19
Menczak (2007/0283124) teaches:
The method of claim 18, further comprising: providing, as part of a plurality of requests from the different processes or as a separate request, a first collective call for the at least one process using first arguments associated with a first one of the different memory sizes; and P. 0091 an application may be using the largest allowable page size when requesting translation table look-ups; P. 0085 application or thread requesting access to the particular virtual address requires a look up
providing, as part of the plurality of requests from the different processes or as another separate request, a second collective call for the at least one process using second arguments associated with a second one of the different memory sizes. P. 0091 the operating system may change the page size for an application at different points in its execution; P. 0085 application or thread requesting access to the particular virtual address requires a look up
The rationale to combine Noel with Menczak for claim 18 equally applies for dependent claim 19.
Claim 20
Menczak (2007/0283124) teaches:
The method of claim 18, further comprising: using contiguous parts of the virtual memory for different requests, in different collective calls associated with the at least one process, the contiguous parts representing the equal allocation of virtual memory. P. 0039 a particular memory virtualization technique may be employed based on a range of virtual or physical memory addresses or on the size of a data structure accessed by an application; P. 0051 an application requests access a particular virtual memory address, the virtual memory address is compared to a range of virtual memory address to determine the appropriate translation technique; P. 0127 implement memory management routines for allocating various blocks of system memory 1210 or disk storage 1260 to an application executing on processor 1270
The rationale to combine Noel with Menczak for claim 18 equally applies for dependent claim 20.
Claim(s) 8 is/are rejected under 35 U.S.C. 103 as being unpatentable over Noel et al. (U.S. PGPub No. 2002/0016891) in view of Menczak et al. (U.S. PGPub No. 2007/0283124) in view of Ravindranath et al. (U.S. PGPub No. 2010/0235603) in view of Scales et al. (U.S. PGPub No. 2015/0160884)
Claim 8
The systems of Noel, Menczak and Ravindranath do not explicitly teach the on-demand paging being used in a NIC.
Scales (2015/0160884) teaches:
The interface of claim 1, wherein on-demand paging is used in a network interface card (NIC) associated with the interface, the on-demand paging to provide a registration associated with the one part of the virtual memory being part of the mapping to the one part of a physical memory. P. 0011 hardware platform 118 of each host 108 may include a network interface 210, a plurality of NICs is included in network interface 210
It would have been obvious to a person with ordinary skill in the art at the effective filing date of the application to include the invention of Noel, Menczak and Ravindranath with the on-demand paging being used in a NIC taught by Scales
The motivation to communicate with one or more network data storage systems (See Scales P. 0011)
The systems of Noel, Menczak, Ravindranath and Scales are analogous because they are from the “same field of endeavor” and from the same “problem solving area.” Namely, they are both from the field of memory systems.
Therefore it would have been obvious to combine Noel, Menczak and Ravindranath with Scales to obtain the invention as recited in claim 8.
Response to Arguments
Applicant's arguments filed 12/9/2025 have been fully considered but they are not persuasive.
The applicant states “for example, the Office alleges that Noel does not disclose but that Menczak discloses "enable equal allocation of virtual memory to the different processes [...]," citing to Menczak's paragraphs [0041] and [0107]." See Non-Final Office Action, p. 3. (The Office has omitted by ellipsis the remaining language of "[...] based on a maximum of the different memory sizes for the virtual memory"). However, Menczak discloses only that "a programmer may direct the operating system, such as through compiler directives, to use the largest available page size, or to allocate a memory block of a given size that is close to a particular processor, for a given application." In other words, Menczak discloses using the largest available page size for any individual application, but not using the largest available page size for all given applications. Using the largest available page size for a singular application is not the same as using the same "equal allocation of virtual memory to the different processes," let alone "based on a maximum of the different memory sizes for the virtual memory." For at least these reasons, Menczak does not disclose the claim elements discussed herein.”
The examiner respectfully notes a process is generated by an application, as stated by the applicant’s specification 0058. The largest available page size for an application would also be the largest available page size of all the processes generated by the application. The claim language does not describe processes as being unassociated with an application. It is also noted, the rejection has been updated in view of the amendments, and the new reference Ravindranath teaches selecting the largest allocation size requested, where subroutines are generating memory allocation requests.
Applicant's arguments filed 12/9/2025 have been fully considered but they are not persuasive.
The applicant states “The Office also alleges that Menczak discloses "wherein a translation for the mapping occurs using a start address and the maximum of the different memory sizes," citing to Menczak's paragraphs [0026]-[0027]. See Non-Final Office Action, p. 4. However, Menczak is silent on this element … Menczak discloses only "provid[ing] the high order bits of the physical address of the page [ . . . ]," and that "the low order bits of the virtual address may be used as an offset into the particular block of physical memory." Providing "high order bits" or "low order bits" is not the same as performing "a translation for the mapping" by "using a start address and the maximum of the different memory sizes." For at least these reasons, Menczak does not disclose the claim elements discussed herein.”
The examiner respectfully notes claims are given their broadest reasonable interpretation in view of the specification. The claim language does not explicitly state how the memory size is used in translation, Menczak 0052 describes how the number of high-order bits from the virtual addresses used to determine the physical page is based on the size of the pages. Since the selected page size is the largest page size available for a given application (see Menczak P. 0100), the selection of the number of high-order bits is based on the largest page size available. The selection of the number of high-order bits of a virtual address is part of the translation process, and reads on the claim in its current form. It is also noted that the rejection was made under a combination of Noel, Menczak and Ravindranath, and Ravindranath teaches selecting the largest allocation size requested, where subroutines are generating memory allocation requests. In combination with Menczak, this teaches using the maximum of the different memory sizes to perform translation. Further, the use of an offset in the memory translation described by Menczak indicates that the physical address obtained by translating the virtual address is a start address into a memory unit. In Menczak P. 0026-27 for block-based translation, the high order bits of the physical address are used to determine the physical page, but to determine the physical block the low-order bits of the virtual address are used as an offset. In other words, the high order bits of the physical address functions as a starting address. Since the claim language is not specific on how the starting address is used in translation, when the starting address is provided, or in what stage of translation the starting address is used, the high order bits of the physical address taught by Menczak teach using a start address to perform translation. A person of ordinary skill in the art would recognize an offset is used in combination with a starting address, to identify a requested memory unit within the container identified by the starting address.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Bialek et al. (U.S. Patent No. 11853598) teaches an allocation in a heap having a maximum memory size, a bitmap and page table tracking the physical memory assigned to the virtual memory of the heap.
Olgati et al. (U.S. Patent No. 9858199) teaches a page table mapping portions of physical memory to virtual address space, where a first virtual address space is assigned to a first process, requesting allocation of the first virtual address space associated with a minimum size, and sharing the first virtual address space with a second process corresponding to the same application.
Gounares et al. (U.S. Patent No. 8700838) teaches assessing the size of memory objects associated with a process, and using the size to determine where the object is stored.
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 STEPHANIE WU whose telephone number is (571)272-0257. The examiner can normally be reached 1pm to 6pm, and 10pm to 1am Eastern time (10am to 3pm, and 7pm to 10pm Pacific time).
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, Rocio Del Mar Perez-Velez can be reached on (571) 270-5935. 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.
/STEPHANIE WU/Primary Examiner, Art Unit 2133