Claims Analysis
Total Claims: 22
Claim 1
Independent Claim
233 words
An adaptive memory management method for a coupled memory multiprocessor computer system comprising a plurality of CPU modules to which processes are assigned and a global interconnect, each of said CPU modules including a processor and a coupled memory region accessible by the processor without using the global interconnect, the coupled memory regions of other CPU modules being accessible by other processors via the global interconnect, said adaptive memory management method comprising the steps of: monitoring the memory references made by the processor of each CPU module; maintaining an active page list for each CPU module based on the references of the processor of the CPU module to the coupled memory region of the CPU module, the head of each of said active page lists being the most recently referenced page and the tail of said active page list being the least recently referenced page; maintaining a remote page hash table for each CPU module based on the frequency of references made by the processor of the CPU module to pages which are not located in the coupled memory region of the CPU module; and transferring pages that are not located in the coupled memory region of a CPU module and are referenced more frequently by the processor of the CPU module than pages located in the coupled memory region of the CPU module, to the coupled memory region of the CPU module.
Claim 2
Dependent Claim
233 words
An adaptive memory management method for a coupled memory multiprocessor computer system comprising a plurality of CPU modules to which processes are assigned and a global interconnect, each of said CPU modules including a processor and a coupled memory region accessible by the processor without using the global interconnect, the coupled memory regions of other CPU modules being accessible by other processors via the global interconnect, said adaptive memory management method comprising the steps of: monitoring the memory references made by the processor of each CPU module; maintaining an active page list for each CPU module based on the references of the processor of the CPU module to the coupled memory region of the CPU module, the head of each of said active page lists being the most recently referenced page and the tail of said active page list being the least recently referenced page; maintaining a remote page hash table for each CPU module based on the frequency of references made by the processor of the CPU module to pages which are not located in the coupled memory region of the CPU module; and transferring pages that are not located in the coupled memory region of a CPU module and are referenced more frequently by the processor of the CPU module than pages located in the coupled memory region of the CPU module, to the coupled memory region of the CPU module.
Claim 3
Dependent Claim
78 words
An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 1, wherein: said step of monitoring the memory references made by the processor of each CPU module comprises the substeps of detecting the memory requests made by the processor of the CPU module, and storing samples of said memory requests; and said steps of maintaining an active page list and maintaining a remote page hash table are based on said stored samples.
Claim 4
Dependent Claim
29 words
An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 2, wherein both read and write memory request samples are detected and stored.
Claim 5
Dependent Claim
43 words
An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 1, wherein said steps of maintaining an active page list and maintaining a remote page table are accomplished by an adapt daemon running on each CPU module.
Claim 6
Dependent Claim
77 words
An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 4, wherein: said step of monitoring memory references made by the processor of each CPU module comprises the substeps of detecting the memory requests made by the processor of the CPU module and storing samples of said memory requests; and said steps of maintaining an active page list and maintaining a remote page hash table are based on said stored samples.
Claim 7
Dependent Claim
66 words
An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 5, wherein said adapt daemon periodically checks said stored samples and causes coupled memory pages referenced by the processor of the CPU module running the adapt daemon to be placed at the head of said active page list and uses said stored samples to maintain said remote page hash table.
Claim 8
Dependent Claim
51 words
An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 6, wherein said adapt daemon marks for migration to the coupled memory region of the CPU module running the adapt daemon frequently referenced pages not located in the coupled memory region of the CPU module.
Claim 9
Dependent Claim
37 words
An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 7, wherein the pages marked for migration by said adapt daemon form a migration array for each of said CPU modules.
Claim 10
Dependent Claim
75 words
An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 8, wherein said adapt daemon includes a collection phase, said collection phase including the steps of: evaluating said stored samples to determine if the samples relate to pages in the coupled memory region of the CPU module running the adapt daemon; and if related, placing the pages at the head of the active page list of said CPU module.
Claim 11
Dependent Claim
70 words
An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 9, wherein said collection phase also includes the step of determining whether the samples of pages not located in the coupled memory region of a CPU module to which a process is assigned are data or stack pages and using such information to maintain the remote page hash table for the related CPU module.
Claim 12
Dependent Claim
60 words
An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 10, wherein said collection phase also test the pages of said remote page hash table and adds pages from said remote page hash table to said migration array when the references to pages in said remote page hash table increase above a predetermined level.
Claim 13
Dependent Claim
45 words
An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 11, wherein said predetermined level is based on the number of references made by the processor of the CPU module to which a particular remote page hash table relates.
Claim 14
Dependent Claim
97 words
An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 12, wherein said adapt daemon includes a migration decision phase, said migration decision phase including the step of testing each of the pages in the migration array of the CPU module on which the adapt daemon is running to determine if the number of times each page has been referenced is above a second predetermined level, said second predetermined level greater than said first predetermined level and marking the pages that have been referenced above said second predetermined level for migration.
Claim 15
Dependent Claim
74 words
An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 13, wherein said migration decision phase also includes the step of determining if the amount of free memory of the coupled memory region of the CPU module running the adapt daemon is plentiful and, if plentiful relative to a predetermined level, marking for migration pages contained in said migration array lying between said first and second predetermined levels.
Claim 16
Dependent Claim
69 words
An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 14, wherein said migration decision phase also includes the step of determining the size of the process related to a particular page in said migration array and marking said page for migration even if the free memory of the coupled memory region of the CPU module running the adapt daemon is not plentiful.
Claim 17
Dependent Claim
44 words
An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 15, wherein said migration decision phase includes a disassociated page routine that tests pages to determine if they are migratable prior to said pages being marked for migration.
Claim 18
Dependent Claim
43 words
An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 16, wherein said step of transferring pages that are not located in the coupled memory region of a CPU module is performed by a page fault routine.
Claim 19
Dependent Claim
33 words
An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 17, wherein said page fault routine determines if pages are reclaimable and reclaims pages that are reclaimable.
Claim 20
Dependent Claim
75 words
An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 18, wherein said coupled memory multiprocessor computer system includes global memory and wherein said page fault routine allocates non-reclaimable data and stack pages to either global memory or the coupled memory region of the CPU module to which the process owning the data and stack pages is assigned based on whether said coupled memory region is in short supply.
Claim 21
Dependent Claim
115 words
An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 19, wherein said page fault routine tests reclaimable data or stack pages to determine if they are in the coupled memory region of the CPU module to which the process owning the reclaimable data and stack pages is assigned and if the reclaimable data or stack pages have been marked for migration and, if not in said coupled memory region and marked for migration, allocating a page in the coupled memory region of the CPU module, to which the process owning the reclaimable data or stack pages has been assigned, to one of the reclaimable data or stack pages.
Claim 22
Dependent Claim
104 words
An adaptive memory management method for a coupled memory multiprocessor computer system as claimed in claim 20, wherein said page fault routine also determines if the free memory of the coupled memory region to which a data or stack page is assigned is low and, if low, either takes away pages located at the end of the active page list of the process that owns the data and stack page, depending upon whether the data and stack pages stored in the coupled memory region of the CPU module assigned the process owning the data or stack page is above or below a predetermined level.